0

我有这个简单的脚本,我想将 Var a * Var b 相乘,然后将其乘以 Var C 与一个设定的数字,例如 15。

但它似乎不起作用?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script>
$('input[name="box2"]').keyup(function() {
    var a = $('input[name="box1"]').val();
    var b = $(this).val();
    var c = $(15).val();
    $('input[name="box3"]').val(a * b * c);
});
​
</script>
</head>


<body>
<input name="box1" type="text" /><br />
<input name="box2" type="text" /><br />
<input name="box3" type="text" />
</body>
4

3 回答 3

3

要做的一些改变:

var a = parseInt($('input[name="box1"]').val(), 10);
var b = parseInt($(this).val(), 10);
var c = 15; // really no need to try to build a dom element to get an int

注意永远不要在没有指定基数 ( )的情况下使用parseInt 。parseInt("09") is 0...

您的代码中的另一个问题是您尝试在 dom 准备好之前构建您的 jquery 集合。用这个 :

<script>
$(function(){
   $('input[name="box2"]').keyup(function() {
     var a = $('input[name="box1"]').val();
     var b = $(this).val();
     var c = $(15).val();
     $('input[name="box3"]').val(a * b * c);
   });
});
</script>

请注意,这也是最佳实践,尤其是在使用 jQuery 时,这很容易,在正文的末尾有一个脚本元素,以保留所有不在单独文件中的 javascript。

于 2012-11-21T09:31:39.833 回答
1

更改var c = $(15).val();var c=15;

于 2012-11-21T09:31:16.740 回答
0

您应该将字符串值解析为 int:

var a = parseInt($('input[name="box1"]').val());
于 2012-11-21T09:29:20.277 回答