0

基于此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();
4

3 回答 3

1

查看您的代码:您将 a 相乘StringString这是一个明显的结果NaN

其次要了解的是使用parseIntorparseFloat之前的算术计算,然后通过isNaN方法检查。

$("#firstVal").val();将导致 invalue元素的属性值,<input>这里是first( String)。

使用警报检查:

function displayVals() {
var firstValue = $("#firstVal").val();
var secondValue = $("#secondVal").val();
alert(firstValue+' '+secondValue+(firstValue*secondValue));
}

但是,当您将这两个值都更改为它时,number它应该像value一个数字一样工作。

于 2013-09-02T06:02:00.140 回答
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");
}

})

工作小提琴

于 2013-09-02T06:01:44.223 回答
0

NaN插入是#result因为您displayVals();在代码片段的末尾调用。该函数现在尝试相乘firstsecond当然返回NaN,因为你不能乘以字符串。

于 2013-09-02T06:02:00.993 回答