我能用下面的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能够做的是返回在输入类型文本文件中输入的总值:
这是代码:(KEYPRESS EVENT USED)
<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中,但我面临的问题是
- 它不将输入类型文本的值视为整数
- 在输入类型为文本的情况下,单击事件无法正常工作
我怎样才能达到预期的效果请帮忙。提前感谢:-)
对您的函数进行了一些更改,认为这会让事情变得更容易:
$("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/