当邮政编码有效时启用按钮 - 不起作用

时间:2013-07-25 19:39:01

标签: jquery validation

我已经实现了jquery来验证zipcode。在位置文本框的focusout()事件中。

如果邮政编码无效,则会禁用提交按钮。

我在这里面临一个问题。

  1. 用户输入无效的邮政编码,尝试点击提交,然后该按钮被停用并显示错误消息。
  2. 用户将邮政编码更改为正确的格式,然后点击提交按钮,现在必须启用按钮。 --------但是在这里它仍然被禁用并且仍然显示错误消息。 ---------如果你试图将焦点改为其他输入字段,一切都很好。
  3. 包括此处的代码

    <script type="text/javascript">
    
    $("#locationInput").focusout(function(){ 
    var value = $("#locationInput").val();
    
    //If the value give in location field is numeric, it is guessed to be a zipcode
    if($.isNumeric(value))
    {
        $("#hidden").val("zipcode");
    
        //Zipcode validation for USA
        var postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
    
        if(postalCodeRegex.test(value))
        {
            $("#error").html("");
            $("#submitButton").removeAttr("disabled"); 
            var value = $("#hidden").val();
            //alert("Valid zipcode");
        }
        else
        {
            //alert("Invalid zipcode");
            $("#error").html("Please provide a valid zipcode (Ex: 95035) or city name");
            $("#submitButton").attr("disabled", "disabled");
        }
    }
    else
    {
        $("#hidden").val("city");
        //alert("false");
    }
    
    });
    </script>
    
    <br />
    

    有谁知道我哪里出错了。

    感谢。

1 个答案:

答案 0 :(得分:1)

我认为在您的情况下验证邮政编码的最佳方法是使用keyup事件,以便用户可以看到每个版本后有效的当前邮政编码

$("#locationInput").keyup(function(){
    if(--validatin here--){
        $("#submitButton").removeAttr("disabled");
    } else{
        $("#submitButton").attr("disabled", "disabled");
    }
});

http://api.jquery.com/keyup/