使用 jQuery 在文本区域中按 Enter
Pressing Enter in textarea using jQuery
在验收测试中,输入文本后按回车键触发事件。我尝试填写文本并使用 keyEvent 按下回车键。
PS: Testem 忽略 keyEvent。
HTML:
<div class="issue-container">
<div class="create-container">
<div class="input-field ui-textarea md-animated ember-view">
<label id="ember1369-label" for="ember1369-input" class="active">Add an issue</label>
<textarea data-test-id="txtid" id="ember1369-input" class="md-textarea" style="height: 21.5px; overflow: hidden;"></textarea></div></div></div>
验收测试:
test('review-an-element', async function(assert) {
await fillIn(testSelector('txtid'), 'Input is typed here and then hit enter');
await keyEvent(testSelector('txtid'), 'keypress', 13);}); //hitting enter
我的 jQuery 尝试:
var e = jQuery.Event("keyup");
e.which = 13;
e.keyCode = 13;
await $('.md-textarea').trigger(e);
您需要处理 keyup
事件,而不是 keypress
事件。 keypress
事件仅针对产生输出的键触发,例如字母键。参考:https://developer.mozilla.org/en-US/docs/Web/Events/keypress
验收测试:
改变
await keyEvent(testSelector('txtid'), 'keypress', 13);
到
await keyEvent(testSelector('txtid'), 'keyup', 13);
编辑:testSelector()
助手已弃用 - https://github.com/simplabs/ember-test-selectors/pull/134
我的解决方案 jQuery。
var e = $.Event('keydown', { keyCode: 13 });
test('txtarea', async function(assert){
await fillIn($('.md-textarea')[0], 'text is entered here');
await $('.md-textarea').trigger(e);
});
在验收测试中,输入文本后按回车键触发事件。我尝试填写文本并使用 keyEvent 按下回车键。
PS: Testem 忽略 keyEvent。
HTML:
<div class="issue-container">
<div class="create-container">
<div class="input-field ui-textarea md-animated ember-view">
<label id="ember1369-label" for="ember1369-input" class="active">Add an issue</label>
<textarea data-test-id="txtid" id="ember1369-input" class="md-textarea" style="height: 21.5px; overflow: hidden;"></textarea></div></div></div>
验收测试:
test('review-an-element', async function(assert) {
await fillIn(testSelector('txtid'), 'Input is typed here and then hit enter');
await keyEvent(testSelector('txtid'), 'keypress', 13);}); //hitting enter
我的 jQuery 尝试:
var e = jQuery.Event("keyup");
e.which = 13;
e.keyCode = 13;
await $('.md-textarea').trigger(e);
您需要处理 keyup
事件,而不是 keypress
事件。 keypress
事件仅针对产生输出的键触发,例如字母键。参考:https://developer.mozilla.org/en-US/docs/Web/Events/keypress
验收测试:
改变
await keyEvent(testSelector('txtid'), 'keypress', 13);
到
await keyEvent(testSelector('txtid'), 'keyup', 13);
编辑:testSelector()
助手已弃用 - https://github.com/simplabs/ember-test-selectors/pull/134
我的解决方案 jQuery。
var e = $.Event('keydown', { keyCode: 13 });
test('txtarea', async function(assert){
await fillIn($('.md-textarea')[0], 'text is entered here');
await $('.md-textarea').trigger(e);
});