0

私はjqueryの初心者ですが、これを行うために最善を尽くしましたが、残念ながら何かを見逃していました

テキスト入力が空白のときに keyup イベントを一時的に無効にし、何かを入力した後に再度有効にするにはどうすればよいですか?

キープレスでバックスペースをキャッチできないので、キーアップを使用しました。これが私のコードです

$('#searchBox').keyup(function(e){
if(e.keyCode != '18' && e.keyCode != '91' && e.keyCode != '17' && e.keyCode != '16' && e.keyCode != '20' && e.keyCode != '27' && e.keyCode != '113' && e.keyCode != '115' && e.keyCode != '118' && e.keyCode != '119' && e.keyCode != '120' && e.keyCode != '122' && e.keyCode != '123' && e.keyCode != '44' && e.keyCode != '19' && e.keyCode != '45' && e.keyCode != '46' && e.keyCode != '36' && e.keyCode != '33' && e.keyCode != '34' && e.keyCode != '35' && e.keyCode != '39' && e.keyCode != '37' && e.keyCode != '38' && e.keyCode != '9'){
    if(e.keyCode == '8' && $(this).val()==""){
        //what will i put here
    }else if(e.keyCode == '8' && $(this).val()!=""){
        refreshWookmark($(this).val());
    }else{
        refreshWookmark($(this).val());
    }
}
});
4

4 に答える 4

1

キーアップ機能またはその他の機能を無効にするには、これを試してください

  if()
    {
    obj.keyup(function () {
    //code
    });
    }else{
    obj.unbind("keyup")
    }
于 2016-12-29T08:19:52.563 に答える
0

return空白の入力で次のことができます。

$("#idOfElement").keyup(function() {
    if (!this.value == '') {
        //do stuff
    } else {
        return;
    }
});
于 2013-05-31T19:04:34.990 に答える
0

無効にするのではなく、入力が存在することと、それがkeyCode有効と見なされるものであることを確認してください。

$('#searchBox').on('keyup',function(e){
    var bad = ['18','91','17','16','20','27','113','115','118','119','120','122','123','44','19','45','46','36','33','34','35','39','37','38','9'],
        isBad = false;

    for(var i=bad.length;i--;){
        if(e.keyCode == bad[i]){
            isBad = true;
            break;
        }
    }

    if(this.value.length > 0 && !isBad){
        refreshWookmark(this.value);
    }
});

これは、入力が存在し、正しい場合にのみ必要な機能を実行しますkeyCode。これは、あなたが求めていたものだと思います。

this.valueまた、99.9% の確率で の代わりに使用できます$(this).val()。これにより、jQuery オブジェクトにラップし、内部メソッドを使用して値を取得するオーバーヘッドが節約thisされます (これは基本的に ですthis.value)。

于 2013-05-31T19:05:26.007 に答える
0

値が空の場合、ハンドラーから抜け出すことはできませんか?

$(element).keyup(function(e) {
    if (this.value.trim() == '')
        return;

    // do stuff
});
于 2013-05-31T19:05:46.060 に答える