jquery事件不起作用

时间:2010-03-05 10:38:52

标签: jquery

<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;
});

它不起作用。有人知道为什么吗?我错过了什么?

3 个答案:

答案 0 :(得分:5)

您的表单标记ID应该只声明为new_key,而不是#new_key

<form id='new_key' action='/foo/bar' method='post'>

#不是ID的一部分,它是jQuery根据#在CSS中使用的ID来匹配元素的信号。

答案 1 :(得分:2)

当DOM准备好时,

$.fn.ready执行。它不会查看jQuery对象。因此,您的'#new_key'部分将被忽略。

作为Tobias Cohen answered,您需要通过删除前面的#来更改表单元素的ID。

答案 2 :(得分:1)

尝试将代码包装在$(function() { })块中:

$(function() {
  $('#new_key').submit(function() {
    alert('Handler for .submit() called.');
    return false;
  });
});