【问题标题】:JQuery text box click function that increments value even when text box is empty即使文本框为空,JQuery 文本框单击功能也会增加值
【发布时间】:2014-02-22 21:34:07
【问题描述】:

当用户在“原理”文本框中单击鼠标时,价值增加 1000 美元。即使 is 文本框为空,这也应该有效。

该功能仅在文本框中已有值时有效。当我在它为空时单击它时,该值显示 NaN。

$("#principal").click(function () {
            var p = parseFloat($("#principal").val());
            p = p + 1000.00;
            $("#principal").val(p); 
        });

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这将解决您的问题:

    $("#principal").click(function () {
                var p = parseFloat($("#principal").val() || 0);
                p = p + 1000.00;
                $("#principal").val(p); 
            });
    

    【讨论】:

    • 您也可以将|| 0 放在parseFloats 参数之外。
    【解决方案2】:

    只需添加|| 0 作为某种“后备”。如果 parseFloat 函数为 falsy,则将其设置为 0 作为值。

    我也将p = p + 1000.00 更改为p += 1000.000,但这只是出于设计原因。

    $("#principal").click(function () {
        var p = parseFloat($("#principal").val()) || 0;
        p += 1000.00;
        $("#principal").val(p);
    });
    

    【讨论】:

    • 很好的答案,但即使添加一点解释,说明您的代码与问题的不同之处以及它解决的问题,总是有帮助的。
    • 此更改不会影响整个功能,因此我将其称为“外观更改”。
    • 对不起,你是对的。出于某种原因,我认为 OP 只有“p = 1000”。继续:)
    【解决方案3】:
    $("#principal").click(function () {
            var p = parseFloat($("#principal").val());
    if($("#principal").val().length == 0)
    {
      p = 1000.00;
    }
    else
    {
      p = p + 1000.00;
    }
      $("#principal").val(p); 
    });
    

    【讨论】:

    • 这行不通,因为 parseFloat 会为空字符串返回 NaNNaN 没有长度属性。 (这将给TypeError: Object NaN has no method 'length'
    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    相关资源
    最近更新 更多