0

我能用下面的 JQuery 做的是它返回所有复选框和选择框的总值。

这是我的 Jquery 脚本:(点击事件使用)

<script type="text/javascript">
$(document).ready(function() {
$("input").click(function(event) {

    var total = 0;

    $("input:checked").each(function() {
        total += parseInt($(this).val(),10);
    });

    var total_text = parseInt($("#min").text(),10);

    total = total + total_text;

    if (total === 0) {
        $('#Totalcost').val('$0');
    }
    else {
        $('#Totalcost').val('$' + total);
    }
});
});
</script>

以下 JQuery 能够做的是它返回输入类型文本字段中输入的总值:

这是代码:(使用的按键事件)

<script type="text/javascript">
$(document).ready(function() {
$("input").keypress(function(event) {

    var total = 0;

    $("input:checked").each(function() {
        total += parseInt($(this).val(),10);
    });

    var total_text = 0;

    /*var total_text = parseInt($("#min").val(),10);

    total = total + total_text;*/

    if (total === 0) {
        $('#Totalcost').val('$0');
    }
    else {
        $('#Totalcost').val('$' + total);
    }
});
});

我试图添加

var total_text = parseInt($("#min").val(),10);
total = total + total_text;

在最上面的 jquery 中,但我面临的问题是

  1. 它没有将输入类型文本的值视为整数。
  2. 在输入类型文本的情况下,单击事件无法正常工作。

我怎样才能达到预期的结果,请帮忙。提前致谢 :-)

4

1 回答 1

1

对您的功能进行了一些更改,认为这使事情变得更容易:

$("input").live("change keyup", function() {
    $("#Totalcost").val(function() {
        var radioVal = parseInt($(this).siblings(":radio:checked").val());
        var textVal = parseInt($("#min").val()) || 0;

        return radioVal + textVal;
    });
});

演示:http: //jsfiddle.net/EzYeH/32/

编辑:更新为使用keyup and change.live()自使用 jQ 1.7 以来使用。

对于 jQ 1.7+

$("input").on("change keyup", function() {
    $("#Totalcost").val(function() {
        var radioVal = parseInt($(this).siblings(":radio:checked").val());
        var textVal = parseInt($("#min").val()) || 0;

        return radioVal + textVal;
    });
});

演示:http: //jsfiddle.net/EzYeH/33/

于 2013-08-26T23:54:39.440 回答