Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 如何从jQuery触发器方法获取布尔返回值?_Events_Jquery Validate_Validation_Jquery - Fatal编程技术网

Events 如何从jQuery触发器方法获取布尔返回值?

Events 如何从jQuery触发器方法获取布尔返回值?,events,jquery-validate,validation,jquery,Events,Jquery Validate,Validation,Jquery,我想使用jQuery的触发器方法触发一个自定义事件: $(wizard).trigger('validatingStepValues'); 然后,在向导的当前步骤代码中,我订阅此事件,如下所示: $(wizard).bind('validatingStepValues', function (){ // Validating step's form data here; returning false on invalid state. }); 然后,在我的向导中,如果验证过程返回一

我想使用jQuery的触发器方法触发一个自定义事件:

$(wizard).trigger('validatingStepValues');
然后,在向导的当前步骤代码中,我订阅此事件,如下所示:

$(wizard).bind('validatingStepValues', function (){
    // Validating step's form data here; returning false on invalid state.
});
然后,在我的向导中,如果验证过程返回一个假值,我想再次阻止用户进入下一步?我想要一些像:

$(wizard).trigger('validatingStepValues', validReturnCallback, invalidReturnCallback)
function wizardValidator(successCallback, failureCallback) {
    return function() {

        // Validating step's form data here;

        if (wasValid && successCallback) {
            successCallback();
        } 
        else if (! wasValid && failureCallback) {
            failureCallback();
        }

        return wasValid;
    };
}

$(wizard).bind('validatingStepValues', wizardValidator(validReturnCallback, invalidReturnCallback));

您是否考虑过使用类似于:

$(wizard).trigger('validatingStepValues', validReturnCallback, invalidReturnCallback)
function wizardValidator(successCallback, failureCallback) {
    return function() {

        // Validating step's form data here;

        if (wasValid && successCallback) {
            successCallback();
        } 
        else if (! wasValid && failureCallback) {
            failureCallback();
        }

        return wasValid;
    };
}

$(wizard).bind('validatingStepValues', wizardValidator(validReturnCallback, invalidReturnCallback));
这要求您知道在绑定事件侦听器时要使用的回调。如果希望能够在不同时间使用不同的回调函数,可以定义其他事件类型,如:

$(wizard).bind('validatingStep2Values', wizardValidator(validStep2ReturnCallback, invalidStep2ReturnCallback));
$(wizard).bind('validatingStep3Values', wizardValidator(validStep3ReturnCallback, invalidStep3ReturnCallback));

或者,通过调用
trigger()
创建的事件会向上传播DOM层次结构。返回
false
事件处理程序将取消此传播。因此,您可以将所需的成功回调函数绑定为向导父节点上的事件侦听器。然而,这并不能允许执行失败回调

这意味着对于每一步,我都应该有一个独特的事件。我认为这不合适。但是我不明白第二部分。也许这太技术化了:);)。但是我非常感谢你的回复。