使用 jquery 去除 Parsley Excluded 似乎不起作用
Using jquery to remove Parsley Excluded doesn't seem to work
我有一项任务要求我使用欧芹选择性地验证输入,然后在输入有效值后将其从欧芹中排除(将其设为只读)。但是如果用户清除它,我需要删除排除的数据属性,并将欧芹重新绑定到表单。我正在做所有这一切,但好像要么。 excluded 实际上并没有被删除,或者 b。欧芹没有重新绑定。这是一些代码:
var handleValidation = function($form, type){
//this works for the initial validation. Meaning it will return
//false the first time (before I add/remove the excluded data attr)
var formId = $form.attr('id');
var valid = $('#' + formId).parsley().validate({group: ""+type + "-validation", force: true});
return valid;
};
var reBindParsley = function(parsleyDef,formId){
$('#' + formId).parsley().destroy();
parsleyDef();
};
$clearIcon.click(function(){
//find input traversing the dom
$input.prop("readonly", false); //this works fine
$input.removeData('parsley-excluded'); //not sure if this is needed
$input.removeAttr('data-parsley-excluded'); //this gets removed from the visual representation of the DOM,
//but when i call validation on it, it's as if it's still there
reBindParsley();
})
//this will handle validating the input
$myInput.click(function(){
var valid = handleValidation($form, type);
if(valid){
makeReadOnly() //adds $myInput.attr('data-parsley-excluded', true);
reBindParsley(parsleyFunction, form);
}
});
因此在调用 clearIcon 单击事件中的代码后,下次我单击输入时,它应该调用 handleValidation(),如果值无效则 return false(就像第一次),但没有。我检查了 firefox 调试器中 DOM 的可视化表示,排除的数据不存在。
非常感谢任何帮助!
不是 100% 是怎么回事,但有一个更简单的方法。
不需要 $input.removeData('parsley-excluded')
,也不需要调用 destroy
.
var formId = $form.attr('id'); var valid = $('#' + formId).parsley...
就是 $form.parsley...
只需添加到表单的排除列表 [readonly]
就可以了。否则,请 post 工作 fiddle.
我有一项任务要求我使用欧芹选择性地验证输入,然后在输入有效值后将其从欧芹中排除(将其设为只读)。但是如果用户清除它,我需要删除排除的数据属性,并将欧芹重新绑定到表单。我正在做所有这一切,但好像要么。 excluded 实际上并没有被删除,或者 b。欧芹没有重新绑定。这是一些代码:
var handleValidation = function($form, type){
//this works for the initial validation. Meaning it will return
//false the first time (before I add/remove the excluded data attr)
var formId = $form.attr('id');
var valid = $('#' + formId).parsley().validate({group: ""+type + "-validation", force: true});
return valid;
};
var reBindParsley = function(parsleyDef,formId){
$('#' + formId).parsley().destroy();
parsleyDef();
};
$clearIcon.click(function(){
//find input traversing the dom
$input.prop("readonly", false); //this works fine
$input.removeData('parsley-excluded'); //not sure if this is needed
$input.removeAttr('data-parsley-excluded'); //this gets removed from the visual representation of the DOM,
//but when i call validation on it, it's as if it's still there
reBindParsley();
})
//this will handle validating the input
$myInput.click(function(){
var valid = handleValidation($form, type);
if(valid){
makeReadOnly() //adds $myInput.attr('data-parsley-excluded', true);
reBindParsley(parsleyFunction, form);
}
});
因此在调用 clearIcon 单击事件中的代码后,下次我单击输入时,它应该调用 handleValidation(),如果值无效则 return false(就像第一次),但没有。我检查了 firefox 调试器中 DOM 的可视化表示,排除的数据不存在。
非常感谢任何帮助!
不是 100% 是怎么回事,但有一个更简单的方法。
不需要$input.removeData('parsley-excluded')
,也不需要调用 destroy
.
var formId = $form.attr('id'); var valid = $('#' + formId).parsley...
就是 $form.parsley...
只需添加到表单的排除列表 [readonly]
就可以了。否则,请 post 工作 fiddle.