我的表单中有一个按钮。我需要在按钮上第一次单击(或按Enter)后处理我的表单,然后,如果某些条件成立,我会执行类似于通过第二次单击或按下按钮上的Enter键提交表单的操作。
您认为我必须做什么?
答案 0 :(得分:1)
创建一个保存状态的(布尔)变量,当第一次单击(或操作)发生且条件为真时,该状态设置为true。然后在变量为真时提交第二个动作。
如果必须在两次点击时匹配条件(我猜是这样),请考虑以下事项:
$(function() {
var first = false;
$("form").submit(function() {
if(first && checkCondition())
submit();
if(!first && checkCondition())
first = true;
e.preventDefault();
});
});
答案 1 :(得分:0)
所以在基本代码中:
var answered = false;
$(function() {
$("form").submit(function() {
if(answered == false) {
answered = true;
return false;
}
});
});
答案 2 :(得分:0)
如果我已经理解了您正在尝试正确执行的操作,则可以将事件处理程序绑定到submit
事件。该事件处理程序将处理您的验证,但如果您使用jQuery one
方法,它将只执行一次。下次触发submit
事件时,表单将照常提交:
$("yourForm").one("submit", function(e) {
e.preventDefault(); //Stop the form from being submitted
//Do stuff
});
结果与@Manuel van Rijn的回答实际上相同,但是使用jQuery的one
只是让我觉得它更简洁一些。但是,这也可以增加一点性能优势,因为事件处理程序在执行后未绑定,不会再次调用。