0

フォームの一部ではなく、スタンドアロンの入力フィールドがあります。

また、onclickイベントを持つボタンも取得しました。

入力フィールドに何かを入力して Enter キーを押すと、効果的にボタンを押すか、その onclick イベントをトリガーします。そのボタンはいわば「入力フィールドのデフォルトボタン」です​​。

<input id='myText' type='text' />
<button id='myButton' onclick='DoSomething()'>Do it!</button>

入力フィールドの onkeypress または onkeydown イベントをいじって、Enter キーなどを確認できると思います。

しかし、より「クリーンな」方法はありますか? ボタンをその入力フィールドに関連付けて、ボタンが「デフォルトアクション」またはそのフィールドの何かになるようにする方法はありますか?

私はフォームの中にいないことに注意してください。何かを送信、投稿、送信しているわけではありません。DoSomething() 関数は、テキスト入力に応じて、ローカルで HTML コンテンツの一部を変更するだけです。

4

3 に答える 3

2

HTML を次のように変更します。

<form onsubmit="DoSomething();">
  <input id='myText' type='text' />
  <input type="submit" value="Do it!" />
</form>

送信ボタン (フォーム内) は、Enter キーを押すと自動的にトリガーされます。

ただし、送信イベントを必ずキャンセルしてください。ブラウザーを再配置したくありません。

でデフォルトをキャンセルするevent.preventDefault()か、関数を return にしfalseます。

于 2013-10-25T09:51:28.313 に答える
0

JavaScript をマークアップから分離してみてください。

HTML

<form id="myform">
  <input id='myText' type='text' />
  <input type="submit" value="Do it!" />
</form>

JS

$("#myform").submit(function(e) {
     // do something
     e.preventDefault();
});

編集:

フォームを使用したくない場合は、次のようにします。

$("#mybutton").on('click', function(){
     // Do something
});
于 2013-10-25T09:54:27.443 に答える
-1

より良い解決策は、HTML JavaScript イベントを使用しないことであり、古いものです。MVC のようなレイヤーでコードを分けたほうがよい。html がビューで、.js がコントローラーである

ファイル functions.js を作成します

jQuery("#myButton").on("click", function() {DoSomething()});
于 2013-10-25T09:56:34.577 に答える