基于此http://api.jquery.com/val/尝试创建代码(从2个输入字段获取值,在第三个输入字段中相乘并插入结果)。
此处放置样本http://jsfiddle.net/KWEyG/1/
<td><input type="text" name="result[]" id='result' value="77"></td>
<td><input type="text" name="firstVal[]" id='firstVal' value="first"></td>
<td><input type="text" name="secondVal[]" id='secondVal' value="second"></td>
然后jquery
function displayVals() {
var firstValue = $("#firstVal").val();
var secondValue = $("#secondVal").val();
$("#result").val(firstValue*secondValue);
}
$("input").change(displayVals);
displayVals();
result
的默认值为77
。但是使用代码默认值,请参阅NaN
。
添加了if ( ($("#firstVal").val() > 0) && ($("#secondVal").val() != '') ) {
。默认值没问题,但没有计算。
需要更正才能使脚本正常工作?
更新
根据建议获得必要的
function displayVals() {
if ( ($("#firstVal").val() > 0) && ($("#secondVal").val() != '') ) {
var firstValue = $("#firstVal").val();
var secondValue = $("#secondVal").val();
$("#result").val(firstValue*secondValue);
}
$("input").change(displayVals);
}
displayVals();
答案 0 :(得分:1)
查看您的代码:
您将String
与String
相乘,这是一个明显的结果NaN
要理解的第二件事是在算术计算之前使用parseInt
或parseFloat
,然后通过isNaN
方法检查。
$("#firstVal").val();
会在元素value
中生成<input>
的属性值,此处为first
(String
)。
使用alert进行检查:
function displayVals() {
var firstValue = $("#firstVal").val();
var secondValue = $("#secondVal").val();
alert(firstValue+' '+secondValue+(firstValue*secondValue));
}
但是,当您将这两个值都更改为number
时,它应该可以正常工作,因为value
将是一个数字。
答案 1 :(得分:0)
你是乘以字符串而不是使用如下的整数值:
<td><input type="text" name="result[]" id='result' value="77"></td>
<td><input type="text" name="firstVal[]" id='firstVal' value=""></td>
<td><input type="text" name="secondVal[]" id='secondVal' value=""></td>
编辑:
$("#check").click(function(){
if ( ($("#firstVal").val() > 0) && ($("#secondVal").val() != '') ) {
displayVals();
}else{
alert("insert a value");
}
})
工作Fiddle
答案 2 :(得分:0)
NaN
已插入#result
,因为您在代码段末尾调用了displayVals();
。该函数现在尝试将first
和second
相乘,这当然会返回NaN
,因为您无法乘以字符串。