0

このコードは機能したくないだけです。アラートウィンドウに表示されるメッセージはNaNです

<script type="text/javascript">
var number1 = document.numbers.nr1.value
var number2 = document.numbers.nr2.value

function add(){
var total = number1 + number2;
return total;

     }

</script>


<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="alert(add())" />
</form>
4

5 に答える 5

3

関数内の数値を取得する必要があります。それ以外の場合は、テキストフィールドに何かが入力される前(またはテキストフィールドがロードされる前でも)に値を取得しようとしますが、これはもちろん定義されていません。

function add(){
    var number1 = parseFloat(document.numbers.nr1.value);
    var number2 = parseFloat(document.numbers.nr2.value);
    var total = number1 + number2;
    return total;
}
于 2013-02-07T05:16:49.253 に答える
2

parseInt()またはparseFloat( )のいずれかを使用する必要があります。デフォルトでは、テキストボックスの値は文字列であるため、文字列のみが整数に変換され
ます。JavaScriptコードは次のようになります。


var number1 = parseInt(document.numbers.nr1.value)
var number2 = parseInt(document.numbers.nr2.value)

function add(){
var total = number1 + number2;
合計を返します。

 }


またはvarnumber1= parseFloat(

document.numbers.nr1.value)
var number2 = parseFloat(document.numbers.nr2.value)

function add(){
var total = number1 + number2;
合計を返します。

 } 
于 2013-02-07T06:03:47.333 に答える
0

アラートが必要な場合は、以下のコードを参照してください。

<script type="text/javascript">
function add(){ //function to add
var number1 = document.numbers.nr1.value 
var number2 = document.numbers.nr2.value
var total = number1 + number2; //total
alert(total); //alert total
}
</script>


<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="add()" /> <!--onclick with submit button-->
</form>
于 2013-02-07T05:20:24.967 に答える
0
    <script type="text/javascript">
function add(){
var number1 = parseInt(document.getElementById("nr1").value);
var number2 = parseInt(document.getElementById("nr2").value);


var total = number1 + number2;
return total;

     }

</script>


<form action="" name="numbers">
<input type="text" name="nr1"  id="nr1" />
<input type="text" name="nr2"  id="nr2"/>
<input type="submit" onclick="alert(add())" />
</form>
于 2013-02-07T05:21:11.707 に答える
0

その時点でadd関数を呼び出すと、値は計算されません。2つのステートメントが関数の外部に存在するため。ページの読み込み中にDOMが上から下に解析されることを忘れないでください。ページの読み込み時に、DOMは2つのステートメントに遭遇し、それらがであることを確認しますundefined。したがって、両方を関数内に移動する必要があります。取得する値はaの形式であるstringため、解析する必要があります。そうしstring concatenationないと発生します。

以下の作業コードを見つけてください:

function add(){
var number1 = parseInt(document.numbers.nr1.value, 10);
var number2 = parseInt(document.numbers.nr2.value, 10);

var total = number1 + number2;
return total;

     }

</script>


<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="alert(add())" />
</form>  

お役に立てれば

于 2013-02-07T05:36:10.690 に答える