0

我们目前正在使用 Dojo Mobile 构建一个应用程序,并且有几个区域我们有输入字段和提交按钮。这些输入字段和提交按钮不在表单中,我们只是使用 onclick 事件来“提交”要在 javascript 中使用的字段中的值。有没有办法让它在我们按下“enter”时,或者在移动应用程序的情况下,当用户在他们的软键盘上按下“search”或“go”时,它会触发那个特定的按钮?我们可能在同一页面上有多个提交按钮。

 ...
<div>
    <input dojoType="dijit.form.TextBox" />
    <button dojoType="dijit.form.Button" type="submit">
        Filter
    </button>
<div>
 ...
4

3 回答 3

1

jQuery中的解决方案:

//when you a key on an input
$("input").keyup(function (e) {
    //if it is enter
    if (e.keyCode == 13) {
        //look for the next submit button a trigger a click
        $(this).next("button[type='submit']").click();
    }
});

我不是道场编码员,但文档似乎相当不错:

http://dojotoolkit.org/documentation/tutorials/1.6/key_events/

http://dojotoolkit.org/api/1.6/dojo/keys/ENTER

请参阅此处获取相关答案:

在 JavaScript 中输入按键事件

http://dojo-toolkit.33424.n3.nabble.com/want-enter-key-in-ValidationTextBox-to-submit-the-form-td977303.html

于 2013-02-06T20:19:20.660 回答
1

将您的相关字段放在表单中。注册一个“onsubmit”事件处理程序并使其与按钮的“onclick”处理程序相同。当您从事件处理程序返回时,您应该返回 false 或调用event.preventDefault(). 这将阻止表单被提交(通过 POST)到服务器。

于 2013-02-06T20:19:39.140 回答
1

覆盖默认表单提交操作

您可以覆盖表单上的默认提交操作。将表单保留在<form>标签中在语义上是明智的,即使您想覆盖默认行为并做您想做的事,作为坚强、独立的黑人女性。

jsFiddle

HTML:

<form id="myForm">
    <input type="text" />
    <button type="submit">Submit</button>
</form>

JavaScript:

var myForm = document.getElementById('myForm');
myForm.addEventListener('submit',function(event){
    alert('submit pressed -- do as you please');
    event.preventDefault(); // cancels form submission
});

//追赶。

于 2013-02-06T20:32:52.847 回答