我正在尝试在验证两个特定字段时删除表单上的验证消息。
我可以在成功验证一个字段时执行此操作,但是当多个字段(或者甚至是一个组)已经过验证时,我将如何进行此操作?
以下是我想要完成的事情
$.listen('parsley:field:success', function (parsleyField) {
if ((parsleyField.$element.attr('name') == 'field1')) && ((parsleyField.$element.attr('name') == 'field2')){
$(".tab-nav-1").removeClass("tab-validation-error")
}
});
在验证一组字段时是否有办法执行某些操作(即使表单不是)?
答案 0 :(得分:2)
这不起作用,因为try {
String receivedData = new AsyncTask().execute("http://yourdomain.com/yourscript.php").get();
}
catch (ExecutionException | InterruptedException ei) {
ei.printStackTrace();
}
仅与一个字段相关联。也就是说,如果你有一个带有两个(有效)输入的表单,那么每个输入都会执行一次该函数。
更新了解决方案
查看Parsley's events结果表明,您可以使用在执行表单验证后触发的parsleyField
。使用此事件可以简化解决方案,因为您只需检查输入是否有效。这是您需要的代码(jsfiddle available):
parsley:form:validated
原始解决方案
您可以创建一个数组来存储输入字段,如果它们变为无效则删除它们。然后,每次执行验证时,只需检查数组中是否存在字段,如果存在,则删除该类。否则,添加该类。
不可否认,解决方案并不像人们想的那样直截了当。看一下下面的代码(jsfiddle available)
$.listen('parsley:form:validated', function (parsleyForm) {
var isValidField1 = $("input[name=field1]").parsley().isValid(),
isValidField2 = $("input[name=field2]").parsley().isValid();
if (isValidField1 && isValidField2) {
$(".tab-nav-1").removeClass("tab-validation-error");
} else {
$(".tab-nav-1").addClass("tab-validation-error");
}
});