1

3つの入力タイプのテキストを含むフォームがあります。

<input type="text" id="one" onkeyup="multiply()" name="one">
<input type="text" id="two" name="two">
<input type="text" id="three" name="three">

<script>
function multiply(){
    one = document.getElementById('one').value;
    two = document.getElementById('two').value;
    document.getElementById('three').value = one * two
}
</script>

今は3つに値がありませんが、動的なものです。フォーラムを(forumSubmit.php)に送信すると、次のエラーが発生します。

undefiend index three

検索して、これはajaxで実行できることがわかりましたが、ajaxを使用したくないので、ページを更新したいと思います。

4

2 に答える 2

1

代わりに、次のようなことを行うことができます。

マークアップ

<!-- Use onkeyup on both inputs -->
<input type="text" id="one" onkeyup="multiply()" name="one">
<input type="text" id="two" onkeyup="multiply()" name="two">
<input type="text" id="three" name="three">
​

JavaScript

function multiply() {
   // Parse the values, and count it as 0 if the input is not a number
   // I also made the variables private to this function using the var keyword
   // There is no need to have them in the global namespace
   var one = parseInt(document.getElementById('one').value, 10) || 0;  
   var two = parseInt(document.getElementById('two').value, 10) || 0;
   document.getElementById('three').value= one * two;
}​

実例

デモをまとめる:http://jsfiddle.net/DjQNx/

于 2012-09-09T13:17:09.607 に答える
0
<input type="text" id="one" onkeyup="multiply()" name="one" />
<input type="text" id="two" onkeyup="multiply()" name="two" />
<input type="text" id="three" name="three" />

<script type="text/javascript">
function multiply() {
    one = document.getElementById('one').value;
    two = document.getElementById('two').value;
    document.getElementById('three').value = one * two;
}
</script>
于 2012-09-09T13:16:57.590 に答える