1

Jquery/JSでフィルタリングされたデータテーブルを作成しています。キーを押すとajaxリクエストを起動し、その後の応答を処理する検索入力フィールドがあります。

フィールド値が1未満であるかどうかを確認するために、追加のイベントとしてバックスペースボタンの押下を含めることを決定するまで、すべてがうまく機能していました。

.onバックスペースだけで起動する2番目のメソッドを追加するまでは正常に機能しました。

誰かが尋ねた場合、ajaxify_laravel()関数は正常に機能し、このスクリプトでは問題になりません。

結果:バックスペースキーの押下以外は受け入れないテキストボックス。すべてのキー押下を通常どおり受け入れるが、バックスペースを個別に処理するためにこれを機能させるにはどうすればよいですか?私はそれを釘付けにしたと思ったが、明らかに私はそうしなかった。

私のコード:

$('input[name="search"]').on('keypress', function() 
{

    if ($(this).val().length > 1)
    {               
        var request = {
            'filter' : $(this).attr('name'),
            'value'  : $(this).val()
        }, url = "/admin/user/view";

        ajaxify_laravel(url, request, build_user_html, failure);
    }

    return false;

}).on('keydown', function(e) {

    if (e.keyCode == 8 && $(this).val().length < 1)
    {
        var request = {
            'filter' : 'reset'
        }, url = "/admin/user/view";

        ajaxify_laravel(url, request, build_user_html, failure);

    }   
});
4

1 に答える 1

1

「keypress」ハンドラーが(少なくとも時々)を返しているように見えますfalse。これは、デフォルトの「ネイティブ」動作を含め、イベントの処理を停止するコマンドとして解釈されます。つまり、キー押下が無視されます。

于 2012-07-24T12:01:27.860 に答える