在if语句中返回Javascript/Jquery中的false

Nic*_*ick 0 javascript forms jquery return

我有这个功能来检查我的表格:

function checkFrm() {
    $.each($('select'), function() {
        var $this = $(this);

        if( $this.val() === 'null') {
            // do nothing
        } else {
            if($this.next('input').val().length < 1) {
                return false;
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

当用户提交此代码时,它会运行此代码,理想情况下,如果符合条件,则表单将因"返回false"而无法提交 位.

然而,出于某种原因,它完全无视这一点!

如果我在开始时设置一个返回变量,如'var toreturn = true;' 然后在触发器被触发时设置'toreturn = false',然后'return toreturn;' 最后它会停止表单提交正常...但是这并没有多大用处,因为我之间运行的警报和检查都是立即触发的,这对用户来说是完全无法控制的.

有什么建议吗?

干杯:)

red*_*are 14

从每个中返回false将不会从函数返回false.

您还需要将var设置为从函数返回false.一旦条件失败,您仍然可以使用return false来突破每个错误.

function checkFrm() {
    var retVal=true;
    $.each($('select'), function() {
        var $this = $(this);

        if( $this.val() === 'null') {
                // do nothing
        } else {
                if($this.next('input').val().length < 1) {
                        //set the var to return from the function
                        retval = false; 
                        //exit out of the each
                        return false;
                }
        }
    });
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)