Commit c7d3de95 authored by wacky6.AriesMBP's avatar wacky6.AriesMBP Committed by 杨奕

input: fix focus

parent 28849840
...@@ -77,7 +77,6 @@ ...@@ -77,7 +77,6 @@
</template> </template>
<script> <script>
import emitter from 'element-ui/src/mixins/emitter'; import emitter from 'element-ui/src/mixins/emitter';
import Focus from 'element-ui/src/mixins/focus';
import Migrating from 'element-ui/src/mixins/migrating'; import Migrating from 'element-ui/src/mixins/migrating';
import calcTextareaHeight from './calcTextareaHeight'; import calcTextareaHeight from './calcTextareaHeight';
import merge from 'element-ui/src/utils/merge'; import merge from 'element-ui/src/utils/merge';
...@@ -87,7 +86,7 @@ ...@@ -87,7 +86,7 @@
componentName: 'ElInput', componentName: 'ElInput',
mixins: [emitter, Focus('input'), Migrating], mixins: [emitter, Migrating],
inject: { inject: {
elForm: { elForm: {
...@@ -183,6 +182,9 @@ ...@@ -183,6 +182,9 @@
}, },
methods: { methods: {
focus() {
(this.$refs.input || this.$refs.textarea).focus();
},
getMigratingConfig() { getMigratingConfig() {
return { return {
props: { props: {
...@@ -201,7 +203,7 @@ ...@@ -201,7 +203,7 @@
} }
}, },
inputSelect() { inputSelect() {
this.$refs.input.select(); (this.$refs.input || this.$refs.textarea).select();
}, },
resizeTextarea() { resizeTextarea() {
if (this.$isServer) return; if (this.$isServer) return;
......
...@@ -99,15 +99,30 @@ describe('MessageBox', () => { ...@@ -99,15 +99,30 @@ describe('MessageBox', () => {
inputErrorMessage: 'validation failed' inputErrorMessage: 'validation failed'
}); });
setTimeout(() => { setTimeout(() => {
expect(document.querySelector('.el-message-box__input')).to.exist;
const messageBox = document.querySelector('.el-message-box__wrapper').__vue__.$parent; const messageBox = document.querySelector('.el-message-box__wrapper').__vue__.$parent;
expect(messageBox.$el.querySelector('.el-message-box__input')).to.exist;
const haveFocus = messageBox.$el.querySelector('input').isSameNode(document.activeElement);
expect(haveFocus).to.true;
messageBox.inputValue = 'no'; messageBox.inputValue = 'no';
setTimeout(() => { setTimeout(() => {
expect(document.querySelector('.el-message-box__errormsg') expect(messageBox.$el.querySelector('.el-message-box__errormsg')
.textContent).to.equal('validation failed'); .textContent).to.equal('validation failed');
done(); done();
}, 100); }, 100);
}, 200); }, 700);
});
it('prompt: focus on textarea', done => {
MessageBox.prompt('这是一段内容', {
inputType: 'textarea',
title: '标题名称'
});
setTimeout(() => {
const messageBox = document.querySelector('.el-message-box__wrapper').__vue__.$parent;
const haveFocus = messageBox.$el.querySelector('textarea').isSameNode(document.activeElement);
expect(haveFocus).to.true;
done();
}, 700);
}); });
describe('custom validator', () => { describe('custom validator', () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment