加载中...

submit()


概述    .submit( handler(eventObject) )

返回值:jQuery

描述:为 JavaScript 的 "submit" 事件绑定一个处理函数,或者触发元素上的该事件。

  • V : 1.0.submit( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • V : 1.4.3.submit( [eventData ], handler(eventObject) )

    • eventData
      类型: PlainObject
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • V : 1.0.submit()

    • 这个方法不接受任何参数。

这个函数的前两个用法是 .bind('submit', handler) 的快捷方式,第3个不带参数的用法是 .trigger('submit') 的快捷方式。

当用户试图提交表单时,就会在这个表单元素上触发submit事件。它只能绑定在<form>元素上。以下几种情况会导致表单被提交:用户点击了<input type="submit">, <input type="image">, 或者 <button type="submit">,或者当某些表单元素获取焦点时,敲击Enter(回车键),都可以提交。

根据不同的浏览器,Enter 键可能会导致表单被提交,如果这个表单只有一个文本框或只有一个 submit 按钮的话。界面不应该依赖于这个键的特殊行为,除非已经使用了 keypress 事件来监听 Enter 键的按下。

举例来说,请看下面的HTML:

  1. <form id="target" action="destination.html">
  2. <input type="text" value="Hello there" />
  3. <input type="submit" value="Go" />
  4. </form>
  5. <div id="other">
  6. Trigger the handler
  7. </div>

这个事件处理程序可以绑定到表单

  1. $('#target').submit(function() {
  2. alert('Handler for .submit() called.');
  3. return false;
  4. });

现在当表单提交时,警告将被显示。出现这种情况的实际提交之前,所以我们可以通过调用事件对象的.preventDefault()或在处理函数中返回 false 来取消提交:

  1. $('#other').click(function() {
  2. $('#target').submit();
  3. });

这些代码执行后,点击Trigger the handler 同样会警报显示。此外,默认的submit表单上的动作上会被触发,所以表格将被提交。

在Internet Explorer中,JavaScript的submit事件不会泡沫。但是,依赖 submit 事件代理的脚本,从 jQuery 1.4 开始,可以跨浏览器正常使用。

Additional Notes(其他注意事项):

  • 表单及他们的子元素不应该使元素名称或ID属性冲突,比如submit, length, 或 method。名称冲突可能会导致混乱的失败。对于一个完整的规则列表,并检查这些问题标记。
  • .submit()方法只是作为.on( "submit", handler )的一个速记写法,移除该事件可以使用.off( "submit" )

示例

实例

如果你想根据一个标识来阻止表单被提交的话,可以像下面这样做:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. p { margin:0; color:blue; }
  6. div,p { margin-left:10px; }
  7. span { color:red; }
  8. </style>
  9. <script src="http://code.jquery.com/jquery-latest.js"></script>
  10. </head>
  11. <body>
  12. <p>Type 'correct' to validate.</p>
  13. <form action="javascript:alert('success!');">
  14. <div>
  15. <input type="text" />
  16. <input type="submit" />
  17. </div>
  18. </form>
  19. <span></span>
  20. <script>
  21. $("form").submit(function() {
  22. if ($("input:first").val() == "correct") {
  23. $("span").text("Validated...").show();
  24. return true;
  25. }
  26. $("span").text("Not valid!").show().fadeOut(1000);
  27. return false;
  28. });
  29. </script>
  30. </body>
  31. </html>

运行一下

实例

如果你想根据一个标识来阻止表单被提交的话,可以像下面这样做:

  1. $("form").submit( function () {
  2. return this.some_flag_variable;
  3. } );

实例

触发页面上第一个表单的提交事件:

  1. $("form:first").submit();


还没有评论.