猜猜我在这里回复有点晚了,但我只是有同样的问题,烧酒的解决方案也不适用于我.
所以我对ActiveForm的JS代码进行了更深入的研究,发现它似乎监视变量中每个字段的状态,如果字段"未触及",则不会触发验证,除非提交实际表单.所以我改变了我的呼吁:
var $form = $("#my-form"),
data = $form.data("yiiActiveForm");
$.each(data.attributes, function() {
this.status = 3;
});
$form.yiiActiveForm("validate");
Run Code Online (Sandbox Code Playgroud)
现在这看起来像我期望的那样有效.
我们可以通过合并@BlueZed和@S Rana的答案来实现这一目标.
您可以在下面编写脚本,因此我们可以检查表单是否有任何错误,然后表单将不会提交(即使它适用于表格(向导),如表格).
var $form = $("#form"),
data = $form.data("yiiActiveForm");
$.each(data.attributes, function() {
this.status = 3;
});
$form.yiiActiveForm("validate");
if ($("#form").find(".has-error").length) {
return false;
}
Run Code Online (Sandbox Code Playgroud)