122

したがって、これまでのコードは次のとおりです。

<fieldset id="LinkList">
    <input type="text" id="addLinks" name="addLinks" value="http://">
    <input type="button" id="linkadd" name="linkadd" value="add">
</fieldset>

にはなく、内にあるの<form>と同じ<div>です。ただし、textbox「addLinks」と呼ばれるものに何かを入力するときは、ユーザーがEnterキーを押して「linkadd」buttonをトリガーし、JavaScript関数を実行できるようにします。
これどうやってするの?
ありがとう

編集: 私はこのコードを見つけましたが、機能していないようです。

$("#addLinks").keyup(function(event){
    if(event.keyCode == 13){
        $("#linkadd").click();
    }
});
4

14 に答える 14

122
$(document).ready(function(){
    $('#TextBoxId').keypress(function(e){
      if(e.keyCode==13)
      $('#linkadd').click();
    });
});
于 2012-10-18T12:57:32.633 に答える
86

jsフリーのソリューションがあります。

type=submitデフォルトにしたいボタンと他のボタンに設定しtype=buttonます。以下のフォームでは、任意の入力フィールドで Enter キーを押すと、Renderボタンが機能します (フォームの 2 番目のボタンであるにもかかわらず)。

例:

    <button id='close_renderer_button' class='btn btn-success'
            title='Перейти к редактированию программы'
            type=button>
      <span class='glyphicon glyphicon-edit'> </span> Edit program
    </button>
    <button id='render_button' class='btn btn-primary'
            title='Построить фрактал'
            type=submit
            formaction='javascript:alert("Bingo!");'>
      <span class='glyphicon glyphicon-send'> </span> Render
    </button>

FF24 および Chrome 35 でテスト済み (formactionは html5 の機能ですが、そうでtypeはありません)。

于 2014-06-16T14:05:29.980 に答える
14
  1. をに置き換えbuttonますsubmit
  2. プログレッシブであり、サーバー側のバージョンがあることを確認してください
  3. JavaScriptをボタンsubmitのハンドラーではなく、フォームのハンドラーにバインドしますclick

フィールドでEnterキーを押すと、フォームの送信がトリガーされ、送信ハンドラーが起動します。

于 2012-10-18T12:57:56.877 に答える
7

次のように、入力にイベント ハンドラーを追加できます。

document.getElementById('addLinks').onkeypress=function(e){
    if(e.keyCode==13){
        document.getElementById('linkadd').click();
    }
}
于 2012-10-18T13:00:50.400 に答える
3

トリガーする必要があるデフォルトのボタンの input type="button" を input type="submit" に置き換えると機能します。

于 2016-10-31T10:13:34.217 に答える
1

以前のいくつかの回答に基づいて、私はこれを思いつきました:

<form>
  <button id='but' type='submit'>do not click me</button>
  <input type='text' placeholder='press enter'>
</form>

$('#but').click(function(e) {
  alert('button press');
  e.preventDefault();
});

フィドルを見てください

編集:追加のhtml要素を追加したくない場合は、JSのみでこれを行うことができます:

    $("input").keyup(function(event) {
        if (event.keyCode === 13) {
            $("button").click();
        }
    });     
于 2016-11-24T22:03:44.940 に答える
1

これでうまくいくはずです。私はjQueryを使用しています。プレーンなjavascriptを書くことができます。
機能に置き換えsendMessage()てください。

$('#addLinks').keypress(function(e) {
    if (e.which == 13) {
        sendMessage();
        e.preventDefault();
    }
});
于 2012-10-18T12:58:15.847 に答える
1

まず、jquery ライブラリ ファイルjqueryを追加し、html ヘッドで呼び出します。

そしてjqueryベースのコードを使用...

$("#id_of_textbox").keyup(function(event){
    if(event.keyCode == 13){
        $("#id_of_button").click();
    }
});
于 2012-10-18T13:00:36.467 に答える
0

純粋な HTMLフォームを使用する:

<form class="my-form" action="javascript:myFunction();">
    <button>Submit</button>
</form>

デフォルトでは、ブラウザはEnterフォームの送信と解釈します。<button>デフォルトでは「送信」タイプで、フォームのaction属性にあるものにアクセスします(ボタンformactionが存在する場合はオーバーライドされます)。この場合、簡単にするために、javascript:pseudo-protocolで JavaScript 関数を使用しますが、通常の形式と同様に、JavaScript イベント リスナーまたは GET/POST メソッドにすることができます。

于 2021-07-16T17:44:49.000 に答える