【问题标题】:Radio buttons issue with OR javascriptOR javascript的单选按钮问题
【发布时间】:2015-09-30 10:33:40
【问题描述】:

谁能帮我理解 JavaScript 中 OR 运算符的正确语法。我正在使用 ||在我的脚本中但不起作用。我有一个包含 4 个值的单选按钮列表。我希望下拉列表在值 2 或 3 上可见。我可以让它正常工作,使用单个值 2 但添加 || 时没有骰子3. 谁能给点建议?提前致谢。

    function ShowConvert() {
        if (radConvert.GetValue() == 2 || 3) {
            frmActivate.GetItemByName("ConvertHide").SetVisible(true);
        }
        else {
            frmActivate.GetItemByName("ConvertHide").SetVisible(false);
        }
    };

【问题讨论】:

    标签: javascript radio-button operator-keyword


    【解决方案1】:

    当您在 javascript 中使用 || 运算符时,您实际上是将 if 语句拆分为两个单独的语句进行评估。如果其中任何一个为真,则 if 语句的计算结果为真。让我们看看你的情况:

    if (radConvert.GetValue() == 2 || 3) {
    

    首先,javascript 将查看 || 运算符之前的部分,并查看其计算结果是否为 true

    radConvert.GetValue() == 2
    

    在这种情况下,假设这不正确 - GetValue() 没有返回 2。因为该语句的计算结果为 false,javascript 现在需要查看 if 条件的后半部分。

    查看|| 运算符的另一侧,javascript 只看到3。 Javascript 认为这是一个“真实”的价值。由于您实际上并没有将 3 与任何东西进行比较,因此 javascript 必须决定 3 是否应该等同于 truefalse。规范说 3 为真,因此 if 语句作为一个整体评估为真,并且语句中的代码运行。

    最简单的解决方法是在 || 运算符的两侧调用您的方法 -

    if(radConvert.GetValue() == 2 || radConvert.GetValue() == 3) {
        ...
    }
    

    【讨论】:

    • Hey Hecksa,非常感谢您简洁的解释和回答。我通读了它并学到了很多东西。在我看到你的答案之前,我已经给了严君的答案,但再次感谢你花时间帮助我。干杯。保罗
    【解决方案2】:

    (radConvert.GetValue() == 2 || radConvert.GetValue() == 3)
    
    2||3 =2

    ||意思是如果left不是falsy就使用right

    例如。

    function(option){
    option = option || {};
    } 

    【讨论】:

    • 颜君你是救世主。它工作得很好,你的解释很容易理解。非常感谢。希望你有一个美好的一天!保罗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2014-12-30
    • 2016-01-03
    相关资源
    最近更新 更多