【发布时间】:2021-11-03 07:32:33
【问题描述】:
我有一个输入字段,它允许负数和正数,或仅基于选择值的正数。
在更改选择选项的值时,我正在尝试修改输入字段的规则,如下所示:
const id = '#myId';
$(id).attr("data-val-range-min", -10000);
removeRules(id);
addRules(id);
$(id).change(); // trying to trigger the validation of the rule
removeRules 是一个函数:
let removeRules = function removeRules(field) {
$(field).rules('remove');
}
addRules 也是如此:
let addRules = function addRules(field) {
let $field = $(field);
if ($field.attr("data-val-required")) {
$field.rules("add", {
required: true,
messages: {
required: $field.attr("data-val-required")
}
});
}
if ($field.attr("data-val-number")) {
$field.rules("add", {
number: true,
messages: {
number: $field.attr("data-val-number")
}
});
}
if ($field.attr("data-val-range")) {
$field.rules("add", {
range: [$field.attr("data-val-range-min"), $field.attr("data-val-range-max")],
messages: {
range: $field.attr("data-val-range")
}
});
}
}
当我在 UI 中更改选择时,data-val-range-min 属性设置正确,但没有重新应用规则。
仅当我手动单击输入字段并再次取消选择时,才会应用规则...
我在这里做错了什么?
提前致谢
【问题讨论】:
标签: javascript jquery jquery-validate