【问题标题】:Pressing Enter in textarea using jQuery使用 jQuery 在 textarea 中按 Enter
【发布时间】:2017-07-20 18:06:55
【问题描述】:

在验收测试中,在文本输入后按 Enter 键会触发事件。我尝试填写文本并使用 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);

【问题讨论】:

    标签: javascript jquery html ember.js


    【解决方案1】:

    您需要处理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 中做到这一点。
    【解决方案2】:

    我的 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);
    });
    

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2016-08-17
      • 2011-11-12
      • 2013-07-12
      相关资源
      最近更新 更多