我正在尝试根据按下的提交按钮来激活两个单独的函数。当我点击“submit1”时,“openMailer_1”出现在控制台日志中,但是当我点击“submit2”时,再次出现“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>
答案 0 :(得分:2)
如果不是,您的点击事件应在$(document).ready()
注册。这将获得你想要的效果,但这里还有更多。
您只需在文档加载时调用.validate()
一次。这将注册该表单的验证规则,然后您可以使用提交处理程序来确定单击了哪个按钮。有关示例,请参阅this jsfiddle。请注意,我在全局范围内声明了id
。可能有很多更好的方法来解决这个问题,但它应该指向正确的方向。
希望有所帮助。