Validation js将重点放在已验证的div on error上
我需要至少填写表格中三个字段中的一个。所以我在包含这三个字段的div元素上使用了欧芹验证。工作得很好,唯一的问题是出错时,它不能像正常输入那样获得焦点 以下是一些更具体的细节(这是haml语法): 然后在我的javascript文件中添加自定义的Validation js将重点放在已验证的div on error上,validation,parsley.js,Validation,Parsley.js,我需要至少填写表格中三个字段中的一个。所以我在包含这三个字段的div元素上使用了欧芹验证。工作得很好,唯一的问题是出错时,它不能像正常输入那样获得焦点 以下是一些更具体的细节(这是haml语法): 然后在我的javascript文件中添加自定义的oneChildRequired验证 Parsley.addValidator('oneChildRequired', { requirementType: 'string', //expect format of strin
oneChildRequired
验证
Parsley.addValidator('oneChildRequired', {
requirementType: 'string', //expect format of string t be input ids separated by '|' e.g. "mobile_phone|home_phone|work_phone" not sure how to allow varying number of requirements so this will suffice
validateString: function(_value, requirement, instance) {
var multiSelector = "#enrolment_form_"+requirement.replace(/\|/g, ', #enrolment_form_');// gives multi selector like '"#enrolment_form_mobile_phone, #enrolment_form_home_phone, #enrolment_form_work_phone"'
var $inputs = instance.$element.find(multiSelector);
var valid = false;
$inputs.each(function(i){
if($(this).val()){
valid = true; // one input has a value
return false; //break out of the loop
}
});
// no input has the target value (requirement2)
return valid;
}
});
我在源代码中找到了
返回此项。_focusedField.focus()代码>
.focus()
我认为只对输入元素有效
所以为了修复它,我用
if(this._focusedField.is(':input')){
return this._focusedField.focus();
} else {
return this._focusedField.attr("tabindex",-1).focus();
}
else块将触发div元素上的焦点
我想知道是否有更好的方法来解决这个问题。PR如果你能找到一个通用的方法来解决这个问题,欢迎你。
if(this._focusedField.is(':input')){
return this._focusedField.focus();
} else {
return this._focusedField.attr("tabindex",-1).focus();
}