12

特定のクラスのテキスト入力で誰かが「Enter」を押したときを検出する必要があります。

私のjQueryは次のとおりです。

$('input.large').keypress(function (e) {
    if(e.which ==13)
        console.log("pressed enter");
});

私のHTMLは次のようなものです。

<tr><td> Personal Name </td></tr>
<tr><td> <input type='text' class='large'> </td></tr>

<tr><td> Email</td></tr>
<tr><td> <input type='text' class='large'> </td></tr>

フィールドIDを指定して試し$('#elementid').keypressたところ、機能しました。しかし、これは機能していません。コンソール出力がありません。私は何が欠けていますか?

4

3 に答える 3

14

でライブ(.on())イベントをdocument使用できます(keydownこれがより良いと思います)。keydownこれにより、セレクターと一致する現在および将来の要素を検出できます。

HTML

<strong>Personal Name</strong>
<input type='text' class='large' /><br />

<strong>Email</strong>
<input type='text' class='large' />
​

JS(jQuery 1.7以降):

注:.which、、およびは非推奨.codeになりました。次の新しいソリューションを使用します。.charCode.keyCode

jQuery(document).on('keydown', 'input.large', function(ev) {
    if(ev.key === 'Enter') {
        // Will change backgroundColor to blue as example
        this.style.backgroundColor = '#EFF';

        // Avoid form submit
        return false;
    }
});

jsFiddle: http: //jsfiddle.net/david_proweb/fjgvhubn/2/

于 2012-12-14T18:20:28.100 に答える
3

これをチェックしてください:http://jsfiddle.net/EJyyr/

このhtmlを使用しました:

<tr><td> Personal Name </td></tr>
<tr><td> <input type='text' class='large' id='a'> </td></tr>

<tr><td> Email</td></tr>
<tr><td> <input type='text' class='large' id='b'> </td></tr>

これはjQueryですwhich logs the input text id

$('.large').keypress(function (e) {
   if(e.which ==13)
    console.log($(this).attr('id'));
});
于 2012-12-14T18:19:21.930 に答える
0

説明してくれたDavidRodriguesに感謝します。それは大いに役立ちました。JQueryライブラリをアップグレードする必要があり、.live()関数が正しく機能しなくなりました。

あなたはそれを次のように使うことができます

select_all_checkboxes入力タイプチェックボックスをクリックしたときに、フォームのすべてのチェックボックス入力を選択します。

jQuery(document).on("click", "#select_all_checkboxes", function(){
    var chk = this.checked;
    $('input[id=selectAll]').each(function(){
        this.checked = chk;
    });
});

ユーザーがタブを使用してフィールドを離れたときに関数「checkMail」を呼び出し、クラス名が「email」のフィールドをクリックします。

jQuery(document).on("blur", 'input.email', function(event){
    var email = $(this).val();
    if (!checkMail(email)) {
        alert("Invalid email.");
        $(this).focus();
    }
});
于 2015-07-06T20:02:37.003 に答える