jquery keyup没有解雇

时间:2013-09-06 13:36:50

标签: javascript jquery

我在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上它运行该函数没有错误。

3 个答案:

答案 0 :(得分:2)

在文档或最接近的静态元素上尝试此委托。 (如果动态添加元素)

$(document).on('keyup','#txtSearchUser',function(){
    //Code
});

答案 1 :(得分:0)

它有效:

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


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

http://jsfiddle.net/jMk5S/

检查您是否正确引用了html元素。也许你把id和班级混在一起?

答案 2 :(得分:0)

我编辑了您的代码并且正在运行:

问题在于你的文档就绪功能,你有语法错误,下次在你的浏览器中检查控制台,看看有什么问题:

DEMO HERE

$(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');
    });
}
});