第二次单击后的操作按钮

时间:2011-11-29 12:34:08

标签: javascript jquery

我的表单中有一个按钮。我需要在按钮上第一次单击(或按Enter)后处理我的表单,然后,如果某些条件成立,我会执行类似于通过第二次单击或按下按钮上的Enter键提交表单的操作。

您认为我必须做什么?

3 个答案:

答案 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只是让我觉得它更简洁一些。但是,这也可以增加一点性能优势,因为事件处理程序在执行后未绑定,不会再次调用。