提交功能 - 显示警告信息

时间:2015-08-06 18:41:52

标签: javascript jquery

当用户在输入框中键入特定文本时,我试图显示警告消息。问题是我只想返回false一次,这样即使他们不改变文本,用户也可以在第二次点击时提交表单。我已经尝试添加一个计数器,但jquery没有记住第二次点击点击的计数。最好的方法是什么?

if (email.val().indexOf("gmail") > -1)) 
        {
        $('input[name=email]').css('border-color','red');    
        $("#submit").after('<p>Error - Do you want to use a gmail account?</p>');
        return false;
        }

3 个答案:

答案 0 :(得分:1)

我会使用一个标志来确定他们是否已经尝试提交,如果他们没有,那么你给他们警告并返回false:

var triedSubmit = false;
$(/* Your jQuery Object */).click(function() {
    if (email.val().indexOf("gmail") > -1)) 
    {
            if (!triedSubmit){
                $('input[name=email]').css('border-color','red');    
                $("#submit").after('<p>Error - Do you want to use a gmail account?</p>');
                triedSubmit = true;
                return false;
            }
    }
}

答案 1 :(得分:1)

只需设置某种标志

var flags = {}; // in some higher scope
// then later, in your verification function
if (email.val().indexOf("gmail") > -1 && !flags.warnedGmail) {
    $('input[name=email]').css('border-color','red');    
    $("#submit").after('<p>Error - Do you want to use a gmail account?</p>');
    flags.warnedGmail = true;
    return false;
}

答案 2 :(得分:0)

为什么不在文本框中放置课程并在第一次失败时将其删除?因此,当您第二次使用jQuery查找它时,您将无法找到它并且无法应用该规则。我是这样实施的:

var submit = function()
{
    var email = $('.emailFirstTry')

    if (email.length > 0 && email.val().indexOf("gmail") > -1)
    {
        $('input[name=email]').css('border-color','red');    
        $("#submit").text('Error - Do you want to use a gmail account');
        $('.emailFirstTry').removeClass('emailFirstTry');
        return false;
    } 

    $('input[name=email]').css('border-color','none');
    $("#submit").text('Success!');
    return true;
};

你可以在这里看到这个小提琴:http://jsfiddle.net/ozrevulsion/39wjbwcr/

希望有所帮助:)