【发布时间】:2014-08-29 01:51:05
【问题描述】:
当用户在表单上的选择列表上进行选择时,我正在尝试动态禁用几个输入字段上的 parsley.js 最大长度。
我看过这个thread,但是当我将代码放入我的字段时,没有触发欧芹,而是提交了表单,我不明白为什么。
我已阅读 parsley.js 文档,但我无法理解为什么添加以下代码行时忽略了 parsley.js 验证:
$('#id_employment_record_position_title').attr('data-parsley-maxlength', '0');
或
$('#id_employment_record_position_title').attr('data-parsley-maxlength', '150');
这是我的代码,用于在用户更改表单上的选择列表时动态打开和关闭欧芹验证:
function toggleFormDetails() {
if ( $('#id_employment_record_display_type').val() == '8888' || $('#id_employment_record_display_type').val() == '9999' ) {
//disable the input field.
$('#id_employment_record_position_title').prop('disabled', true);
....
//destroy parsley on the form.
//$('#employment_history_details_form').parsley().destroy();
//disable the parsley maxlength, when the input field is disabled.
$('#id_employment_record_position_title').attr('data-parsley-maxlength', '0');
//reinitialise parsley on the form.
//$('#employment_history_details_form').parsley();
} else {
//enable the input field.
$('#id_employment_record_position_title').prop('disabled', false);
....
//destroy parsley on the form.
//$('#employment_history_details_form').parsley().destroy();
//change the parsley cs error values for all the required form inputs.
$('#id_employment_record_position_title').attr('data-parsley-maxlength', '150');
//reinitialise parsley on the form.
//$('#employment_history_details_form').parsley();
}
}
为什么我必须在表单上添加destroy & create parsley 代码(我已经在上面注释掉了)?
为此编写自定义验证会更好吗?如果是这样,我该怎么做,b/c我的js代码技能还不够好?
【问题讨论】:
标签: javascript jquery validation parsley.js maxlength