【发布时间】:2020-02-12 14:04:18
【问题描述】:
我正在开发一个模块,如果只有一个有效值和一个空值可用,它应该选择多选或单选字段的唯一可能值。
到目前为止,它工作正常,直到我使用 ACL 禁用选择值。 例如,我有一个包含 3 个可能值的选择字段。然后我禁用其中的 2 个(ACL - 如果选择了特殊队列),因此只剩下一个值(+ 一个空值)。 我的模块一开始不会选择最后一个值,但是当我在同一页面上更改任何其他内容(第二次 onchange 调用)时,它会选择最后一个可能的值。
第一个 if 条件检查字段中是否只有一个可能的值。当我记录“更改”数组时,即使调用整个函数的“更改”是禁用这些值的 ACL,它也总是会保留已禁用的值。
我对 javascript 还是有点陌生,还没有找到解决方案。
非常感谢任何帮助。
$('.TableLike').on("change", function () {
var Change = [];
$('.Row').each( function() {
$(this).children().next().children().next().children().each( function(index) {
Change[index] = $(this).text()
} )
if ( (!Change[2] || /.*Field needed.*/i.test(Change[2])) && Change[0] === "-") {
SoleOption = Change[1];
$(this).children().next().children().next().children().each(function() {
if ($(this).text() === "-") {
$(this).removeAttr("selected");
}
if ($(this).text() === SoleOption) {
$(this).attr("selected", "selected");
}
} )
$(this).children().next().children().children().children().val(SoleOption)
}
SoleOption = "";
Change = [];
} )
} )
【问题讨论】:
-
简而言之,您的解决方案将有 2 个事件侦听器和两个变量在它们之上 - 第一个触发
onFocus或onClick并存储previousValue,另一个变量处理程序对将在onChange上为您提供新值 -
感谢您的回答!但它似乎仍然无法识别 ACL 对字段所做的更改。在我像以前一样对任何输入字段进行第二次更改后,它确实可以识别它。
标签: javascript jquery html acl