0

我可以在$('#formid').submit(function() { });调用中使用 jQuery 拦截/询问表单提交值吗?我无法检查页面中的值,因为它是我需要检查的特定提交按钮。我发现了这个http://geekswithblogs.net/renso/archive/2009/09/09/intercept-a-form-submit-with-jquery-and-prevent-or-allow.aspx它在 FF 中有效,但不是在 IE8 中,所以不幸的是,这无济于事。我也不想将提交代码附加到按钮上,因为我希望制作一个通用的代码,我可以插入到一整套表单中。

干杯

MH

4

1 回答 1

2

最新的 jQuery 1.4 现在支持“实时”提交事件——这意味着您不必将单个处理程序附加到所有表单。Paul Irish 在这里给出了一个很好的例子,涵盖了你所问的内容:

http://jquery14.com/day-05/jquery-1-4-hawtness-1-with-paul-irish

这是我自己的看法:

jQuery(document).ready(function() {

  var pageForms = jQuery('form');

  pageForms.find('input[type="submit"]').live('click', function(event) {
    var submitButton = this;
    var parentForm = jQuery(jQuery(this).parents('form')[0]);
    parentForm.data('submit-button',submitButton);
  });

  pageForms.live('submit', function(event) {

    // Prevent form-submission. You can do this conditionally later, of course
    event.preventDefault();

    // The form that was submitted
    var theForm = jQuery(this);

    // Detect which submit button was pushed
    var submitButton = theForm.data('submit-button');
    console.log('submitButton = ',submitButton.value);

  });

});

HTML:

<form>
  <input type="submit" value="submit form 1" />
</form>

<form>
  <input type="submit" value="submit form 2" />
  <input type="submit" value="submit form 3" />
</form>

http://jsbin.com/equho3/6/edit

编辑-对不起,我在这里发布了一个与您的链接中的示例相匹配的示例!我现在提供了一个跨浏览器的解决方案。

于 2010-01-22T17:38:04.837 回答