0

現在、Dojo Mobileを使用してアプリケーションを構築しており、入力フィールドと送信ボタンがある領域がいくつかあります。これらの入力フィールドと送信ボタンはフォームにありません。onclickイベントを使用して、JavaScriptで使用されるフィールドの値を「送信」します。「Enter」を押したとき、またはモバイルアプリケーションの場合、ユーザーがソフトキーボードで「検索」または「移動」を押したときに、その特定のボタンがトリガーされるようにする方法はありますか?同じページに複数の送信ボタンがある可能性があります。

 ...
<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 に答える