【问题标题】:JQuery Input Selectors - On Change & On Load Selection in One ShotJQuery 输入选择器 - 一次更改和加载选择
【发布时间】:2018-03-07 14:41:33
【问题描述】:

我有一个函数可以根据选定的单选按钮值更改输入标签父(和兄弟)的背景颜色。但是,当有预选的输入值时,我希望将相同的规则应用于表单加载。如何一次性完成?

这是我当前的代码:

    $("input.hvl-radiobutton").change(
    function() {
        if ( $(this).val() == '14999:0') {
            $(this).parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightcoral"});
        } else if ( $(this).val() == '14998:0') {
            $(this).parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightgreen"});
        } else if ($(this).val() == '15000:0') {
            $(this).parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightyellow"});
        }
    });

【问题讨论】:

    标签: jquery input onchange onload


    【解决方案1】:

    你可以创建一个函数并调用它两次...

    function doStuff(inputVal) {
            if (inputVal.val() == '14999:0') {
                inputVal.parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightcoral"});
            } else if (inputVal.val() == '14998:0') {
                inputVal.parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightgreen"});
            } else if (inputVal.val() == '15000:0') {
                inputVal.parents('td.ml-FldCnt').siblings().addBack().css({backgroundColor: "lightyellow"});
            };
    };
    $(document).ready(function(){
    	$("input.hvl-radiobutton").each(function(){
    		doStuff($(this));
    	});
    	$("input.hvl-radiobutton").change(function(){
    		doStuff($(this));
    	});
    });

    【讨论】:

    • 此外,根据您呈现页面的方式,在服务器端动态格式化元素可能更有意义,这样您就不必在页面开始时使用 JavaScript 重新格式化它们加载。
    • 这是一个 SaaS 解决方案,我只能控制客户端。到目前为止,我只使用您的示例在控制台中收到 JQuery 错误。如果我让它工作,我会更新!
    • 对不起,请再试一次...我第一次没有测试!
    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 2016-09-28
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多