首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery onChange使用更改前的值(需要更改后的值)

JQuery onChange使用更改前的值(需要更改后的值)
EN

Stack Overflow用户
提问于 2020-02-12 22:04:18
回答 1查看 78关注 0票数 0

我在一个模块上工作,如果只有一个有效值和一个空的值可用,它应该选择多个或单个选择字段中唯一可能的值。

到目前为止,它工作得很好,直到我使用ACL禁用选择值。例如,我得到了一个包含3个可能值的选择字段。然后我禁用了其中的两个(ACL -如果选择了一个特殊的队列),所以只剩下一个值(+一个空值)。我的模块一开始不会选择最后一个值,但当我在同一页上更改任何其他值时(第二个onchange调用),它将选择最后一个可能的值。

第一个if条件检查Field中是否只有一个可能的值。当我记录'Change‘数组时,即使调用整个函数的'change’是禁用这些值的ACL,它也总是会得到不平衡的值。

我对javascript还是个新手,还没有找到解决方案。

如果能帮上忙我会非常感谢。

代码语言: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 = [];
        } )
    } )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-13 18:24:38

我设法用setTimeout()方法解决了这个问题。所以DOM在ACL进行更改之前进行了更新。我在onChange方法之后打开了setTimeout方法,并将所有应该在更改后运行的代码插入到setTimeout方法中。

我希望这将在未来对其他人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60190139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档