为什么jQuery .submit不起作用?

时间:2011-11-04 17:46:09

标签: jquery form-submit

我提交了将近一个小时的时间来弄清楚如何在提交表单之前进行一些验证。我的表格是这样的:

<!doctype html>
<head>
<title>sample</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js">      </script>
<script>
 $("#myform").submit(function() {
   alert("it is not working");
   return false;
 });
</script>
</head>
<body>
  <form id="myform">
   <input id="foo" value="Change me and press enter"/>
   <input type="submit" />
  </form>
</body>
</html>

它在IE中无效,Chrome FF :-( 我必须做一些非常错误的事情,但是什么呢?

修改

工作样本:

<!doctype html>
<head>
<title>sample</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>
<script>
    $(document).ready(function() {
    $("#myform").submit(function() {
        alert("Now it is def working!");
        return false;
    });
});
</script>
</head>
<body>
<div id="myform">
<form id="myform">
    <input id="foo" value="Change me and press enter"/>
    <input type="submit" />
</form>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:16)

将其包裹在就绪功能中:

$(function(){
   $("#myform").submit(function() {
      alert("THIS IS WORKING!!!!!!");
      return false;
   });
});

你需要将它包装在ready函数中,因为你的函数现在在哪里,DOM元素#myForm不存在,所以你将处理程序附加到一个不存在的元素。

ready函数等待DOM加载,然后在准备好的fintion中运行所有内容。