jQuery表单验证不起作用

时间:2013-10-24 11:57:48

标签: jquery forms validation

我正在进行一个简单的表单验证,它简单地检查是否填写了高度字段。我已经仔细检查了我的代码中的所有内容,但我找不到它为什么不起作用。

我的HTML:

<form id="configuration" action="">

   <div class="con_near">
      <label for="height">height: (mm)</label>
      <input id="form_height" name="height" maxlength="4" type="text" />
   </div><!--End con_near-->

   <input name="calculated" type="submit" class="submit" value="Calculate" />

</form>

我的jQuery:

    <script>

    $(document).ready(function(){  

    // Form validation
    var configForm = $("#configuration");
    var height = $("#form_height");

    // On blur
    height.blur(validateHeight);

    // On keyup
    height.keyup(validateHeight);

    configForm.submit(function(){
        if(validateHeight())
            return true;

        else
            return false;

    });         

    function validateHeight() {
        if(height.val().length() < 4) {
            height.addClass("red_border");  
            return false;
        }
        else{
            height.removeClass("red_border");
            return true;    
        }
    }

    });

       </script>

5 个答案:

答案 0 :(得分:2)

长度不是一个属性,它是一个属性

陷阱>

configForm.submit(function(){
    if(validateHeight(height))
        return true;

    else
        return false;

});     
function validateHeight(height) {
    if(height.val().length < 4) {
        height.addClass("red_border");  
        return false;
    }
    else{
        height.removeClass("red_border");
        return true;    
    }
}

答案 1 :(得分:1)

问题在于.length()

使用

if(height.val().length < 4) {

而不是

if(height.val().length() < 4) {

答案 2 :(得分:0)

使用length代替length()喜欢,

if(height.val().length < 4) {

取代

if(height.val().length() < 4) {

function validateHeight(height) {
    if(height.val().length < 4) {
    .....

Demo

答案 3 :(得分:0)

提交事件不会因返回false而停止你需要使用preventDefault()来停止事件试试这段代码

configForm.submit(function(e){
    if(!validateHeight())
        e.preventDefault();
});         

function validateHeight() {
    if(height.val().length < 4) { // <- here you also made a mistake in length its a property not a function
        height.addClass("red_border");  
        return false;
    }
    height.removeClass("red_border");
    return true;
}

答案 4 :(得分:0)

尝试这样的事情

$(document).ready(function(){

    // Form validation
    var configForm = $("#configuration");
    var height = $("#form_height");

    // On blur
    height.blur(validateHeight);

    // On keyup
    height.keyup(validateHeight);

    configForm.submit(function(){
        return validateHeight();
    });

    function validateHeight() {
        if(height.val().length < 4) {
            height.addClass("red_border");
            return false;
        }
        else{
            height.removeClass("red_border");
            return true;
        }
    }

});