<form id='new_key' action='/foo/bar' method='post'>
<input type="text" id="u">
<input type="submit" value="submit">
</form>
我可以将jQuery事件绑定到此元素,如:
$('#new_key').ready(function () {
alert('Handler for .submit() called.');
return false;
});
它按预期工作,但如果我这样做:
$('#new_key').submit(function () {
alert('Handler for .submit() called.');
return false;
});
它不起作用。有人知道为什么吗?我错过了什么?
答案 0 :(得分:5)
您的表单标记ID应该只声明为new_key
,而不是#new_key
:
<form id='new_key' action='/foo/bar' method='post'>
#
不是ID的一部分,它是jQuery根据#
在CSS中使用的ID来匹配元素的信号。
答案 1 :(得分:2)
$.fn.ready
执行。它不会查看jQuery对象。因此,您的'#new_key'
部分将被忽略。
作为Tobias Cohen answered,您需要通过删除前面的#
来更改表单元素的ID。
答案 2 :(得分:1)
尝试将代码包装在$(function() { })
块中:
$(function() {
$('#new_key').submit(function() {
alert('Handler for .submit() called.');
return false;
});
});