jQuery验证两个提交按钮

Posted

技术标签:

【中文标题】jQuery验证两个提交按钮【英文标题】:jQuery validate two submit buttons 【发布时间】:2013-08-25 20:51:03 【问题描述】:

我正在尝试根据按下哪个提交按钮来触发两个单独的函数。当我单击“提交1”时,控制台日志中出现“openMailer_1”,但是当我单击“提交2”时,“openMailer_1”再次出现,而不是“openMailer_2”。知道我在这里做错了什么吗?

$('*[id^=submit]').live('click', function() 

  var id = $(this).attr('id').slice(-1);
  console.log(id);  

  $('#result_form').validate(
    invalidHandler: function(form)  
    //
    ,              
    submitHandler: function(form)              
      openMailer['openMailer_' + id](); 
    
  );
);

var openMailer = 
  openMailer_1: function() 
    console.log('openMailer_1');    
  ,

  openMailer_2: function() 
    console.log('openMailer_2');
  



<form id="result_form" action="" method="post"> 
  <input type="submit" name="btn_send" id="submit1" value="submit1" />
  <input type="submit" name="btn_send" id="submit2" value="submit2" />
</form>

【问题讨论】:

仅供参考:live 已弃用,使用 .on("click" 【参考方案1】:

如果没有,您的点击事件应该在$(document).ready() 中注册。这将获得您想要的效果,但这里还有更多内容。

您只需在文档加载时调用一次.validate()。这将注册该表单的验证规则,然后您可以使用提交处理程序来确定单击了哪个按钮。有关示例,请参阅this jsfiddle。请注意,我在全局范围内声明了 id。可能有很多更好的方法可以解决这个问题,但它应该为您指明正确的方向。

希望对您有所帮助。

【讨论】:

Jim,非常感谢您抽出宝贵时间帮助解释这一点。您帮助我了解了哪里出了问题,非常感谢。

以上是关于jQuery验证两个提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

当 jquery.validate 验证表单时启用提交按钮

如何使用 jQuery 验证插件获取提交按钮的引用?

jQuery Validation 插件:禁用对指定提交按钮的验证

在 jquery 验证后提交表单 - 需要通过单击按钮来发布数据

如何在不提交的情况下使用 jQuery Validator 验证表单的第一部分?

jquery.validate不使用submit提交 使用button按钮提交 以及使用ajax验证用户名