Javascript 提交功能-显示警告消息

Javascript 提交功能-显示警告消息,javascript,jquery,Javascript,Jquery,当用户在输入框中键入某些文本时,我试图显示一条警告消息。问题是我只想返回false一次,这样用户即使不更改文本,也可以在第二次单击时提交表单。我尝试添加一个计数器,但jquery在第二次单击sumbit时记不住计数。最好的办法是什么 if (email.val().indexOf("gmail") > -1)) { $('input[name=email]').css('border-color','red'); $("#submi

当用户在输入框中键入某些文本时,我试图显示一条警告消息。问题是我只想返回false一次,这样用户即使不更改文本,也可以在第二次单击时提交表单。我尝试添加一个计数器,但jquery在第二次单击sumbit时记不住计数。最好的办法是什么

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;
        }
if(email.val().indexOf(“gmail”)>-1))
{
$('input[name=email]').css('border-color','red');
$(“#提交”)。之后(“错误-您想使用gmail帐户吗?

”); 返回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 triedSubmit=false;
$(/*您的jQuery对象*/)。单击(函数(){
如果(email.val().indexOf(“gmail”)>-1))
{
如果(!triedSubmit){
$('input[name=email]').css('border-color','red');
$(“#提交”)。之后(“错误-您想使用gmail帐户吗?

”); triedSubmit=true; 返回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;
}
var标志={};//在更高的范围内
//然后,在您的验证函数中
if(email.val().indexOf(“gmail”)>-1&&!flags.warnedGmail){
$('input[name=email]').css('border-color','red');
$(“#提交”)。之后(“错误-您想使用gmail帐户吗?

”); flags.warnedGmail=true; 返回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;
};
你可以在这把小提琴上看到它的动作:


希望有帮助:)

您可能需要查看javascript的
确认功能<一旦函数返回,代码>标志将超出范围。请注意,
flags
需要是一个全局变量。它不一定是全局变量,只是在更高的范围内,更清晰