验证功能后返回'true'

时间:2016-05-03 13:59:28

标签: javascript jquery function validation

我尝试在继续之前验证某些字段是否有有效输入。我想在表单提交之前仅验证几个字段。验证工作正常,并在必要时显示错误。但是当所有字段都有效时,似乎没有返回到调用函数继续?

function validateTableRow() {
    $('input[name="addPid"]').valid();
    $('input[name="addName"]').valid();
    $('input[name="addAddress"]').valid();
    $('input[name="addCity"]').valid();
    $('select[name="addState"]').valid();
    $('input[name="addZip"]').valid();
}

$('.button').click(function () {
    if(validateTableRow()){
        //Do something
    }
});
}

2 个答案:

答案 0 :(得分:2)

您的函数validateTableRow()必须返回true才能执行//Do something。但是没有返回任何东西,给JS的false,所以无论你放在if内的什么都不会完成。

您可以根据需要更改功能以返回truefalse

function validateTableRow() {
  return  $('input[name="addPid"]').valid() &&
    $('input[name="addName"]').valid() &&
    $('input[name="addAddress"]').valid() &&
    $('input[name="addCity"]').valid() &&
    $('select[name="addState"]').valid() &&
    $('input[name="addZip"]').valid();
}

$('.button').click(function () {
    if(validateTableRow()){
    //Do something
    }
});
}

[编辑] 要在返回truefalse之前检查所有内容,可以是这样的:

function validateTableRow() {

    $('input[name="addPid"]').valid();
    $('input[name="addName"]').valid();
    $('input[name="addAddress"]').valid();
    $('input[name="addCity"]').valid();
    $('select[name="addState"]').valid();
    $('input[name="addZip"]').valid();

    return  $('input[name="addPid"]').valid() &&
        $('input[name="addName"]').valid() &&
        $('input[name="addAddress"]').valid() &&
        $('input[name="addCity"]').valid() &&
        $('select[name="addState"]').valid() &&
        $('input[name="addZip"]').valid();
    }

    $('.button').click(function () {
        if(validateTableRow()){
        //Do something
        }
    });
    }

答案 1 :(得分:1)

您没有从方法中返回任何内容。

制作它(假设valid方法返回一个布尔值)

function validateTableRow() {
    return $('input[name="addPid"]').valid()  && $('input[name="addName"]').valid() &&   $('input[name="addAddress"]').valid() &&  $('input[name="addCity"]').valid() &&  $('select[name="addState"]').valid() &&   $('input[name="addZip"]').valid();
}

$('.button').click(function () {
    if(validateTableRow()){
        //Do something
    }
});
}