我在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上它运行该函数没有错误。
答案 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');
});
});
检查您是否正确引用了html元素。也许你把id和班级混在一起?
答案 2 :(得分: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');
});
}
});