提交功能-显示警告消息

submit function - display a warning message

本文关键字:警告 消息 显示 功能 提交      更新时间:2023-09-26

我试图在用户在输入框中键入某些文本时显示警告消息。问题是我只想返回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;
        }

我将使用一个标志来确定他们是否已经尝试提交,如果他们没有,那么给他们警告并返回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;
            }
    }
}

设置一些标志

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;
}

为什么不在文本框上添加一个类并在第一次失败时将其删除呢?因此,当您第二次使用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/

希望有所帮助:)