1

keyup イベントで次の関数を使用して、別の JavaScript 関数にリダイレクトします。問題は、関数をテキストボックスにバインドしているにもかかわらず、起動していないように見えることです。

$(document).ready(function () {
EnablePickTargetButton();

//clear contents; use a delay because tinyMCE editor isn't always fully loaded on document.ready
var t = setTimeout(function () {
    if (typeof textEditorForCreate != 'undefined' && tinymce.editors.length > 0)
        tinyMCE.activeEditor.setContent('');
}, 300); 

var txtSearchUser = $('#txtSearchUser');
if(typeof txtSearchUser != 'undefined')
{
    $('#txtSearchUser').keyup(function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();                
            searchUser();
        }
        else
            alert('cucu');
    });
}
});

アラートすら表示されません。HTML を確認すると、テキスト ボックスに onkeyup が追加されていないことがわかります。テキストボックスは、フォームの div でホストされているポップアップ ウィンドウにあります。しかし、 document.ready では、エラーなしで関数を実行します。

4

3 に答える 3

0

できます :

$(document).ready(function(){
    $('#txtSearchUser').keyup(function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();                


        }
        else
            alert('cucu');
    });
});

http://jsfiddle.net/jMk5S/

html 要素を適切に参照しているかどうかを確認してください。おそらくあなたはidをクラスと混ぜていますか?

于 2013-09-06T13:42:34.923 に答える
0

私はあなたのコードを編集し、動作しています:

問題はドキュメントの準備完了関数にあります。構文エラーがあります。次回はブラウザのコンソールをチェックして何が問題なのかを確認してください。

デモはこちら

$(document).ready(function () {
//EnablePickTargetButton();

//clear contents; use a delay because tinyMCE editor isn't always fully loaded on document.ready
var t = setTimeout(function () {
    if ($('#textEditorForCreate').length != 0 && tinymce.editors.length > 0)
        tinyMCE.activeEditor.setContent('');
}, 300); 

if($('#txtSearchUser').length!=0)
{
    $('#txtSearchUser').keyup(function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();                
            searchUser();
        }
        else
            alert('cucu');
    });
}
});
于 2013-09-06T13:46:40.420 に答える