0

このhttp://api.jquery.com/val/に基づいてコードを作成しようとしています (2 つの入力フィールドから値を取得し、乗算して結果を 3 番目の入力フィールドに挿入します)。

ここにサンプルを配置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

あなたのコードを見てください:あなたは明らかな結果であるaStringを掛けていますStringNaN

2 番目に理解しておくべきことは、算術計算の前にparseIntorを使用してから、メソッドで確認することです。parseFloatisNaN

$("#firstVal").val();value要素内の属性値に<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挿入されます。関数は乗算を試みますが、文字列を乗算できないため、もちろん返されます。#resultdisplayVals();firstsecondNaN

于 2013-09-02T06:02:00.993 に答える