3

重複の可能性:
javascriptで入力フィールドの値を設定する

さて、関数の結果を入力ボックスに戻そうとしています (これは電卓の一部です)。例: 電卓に 1 を入力すると、1+2+3+4+5+6+7+8+9+10 が実行され、以下の関数を介して警告メッセージ ボックスに 55 が出力されます。アラート ボックスではなく、ボックス内に結果を表示しようとしています。

以下に、「L」関数、「入力」ボックス、および関数を制御するボタン onClick のコードを示します。

私はそれを理解しようとして約1週間これに取り組んできました。電卓からさらにコードが必要な場合は、提供できます。

function Loop(input)
{
     var num = parseInt(input) + 10;
     var i=0;
     var sum=0;

    while(i < num)
        {
            sum=sum+i;
            i++;
        }
    alert(sum);

}


<input type="button" value="   L    " name="L" onClick="Loop(this.form.display.value)">

<form><input name="display"  id="input" size=25><form>

以下に得た2つの回答が機能しなかったため、コードの残りの部分を次に示します(ただし、助けてくれてありがとう!)

<html> 
<head>
<title>Assignment 2</title>
<SCRIPT LANGUAGE="JavaScript">
<!-- Functions
function addChar(input, character) 
{
if(input.value == null || input.value == "0")
    input.value = character;
else
    input.value += character;
}

function changeSign(input) 
{
if(input.value.substring(0, 1) == "-")
    input.value = input.value.substring(1, input.value.length);
else
    input.value = "-" + input.value;
}

function compute(form)  
{
    form.display.value = eval(form.display.value);
}

function Loop(input)
{
     var num = parseInt(input) + 10;
     var i=0;
     var sum=0;

    while(i < num)
        {
            sum=sum+i;
            i++;
        }
    document.getElementById("input").value=sum;

}
// End -->
</SCRIPT>
</head>
<body>
<div align="center">
<span style="font-weight:bold" size="20">Calculator</span>
<br>
<!-- Prints my name -->
<form  name="MyName" id="form1" style="font-weight:bold" size="20">
<script>
document.write("Mallery, Cody");
</script>
</form>
<!-- functions -->

<!-- The Calculator! -->
<center><form>
<table border=4>
<tr>
<td>
<input name="display"  id="input" size=25>
<br>
</td>
</tr>
<tr>
<td>
<input type="button" value="    7    " onClick="addChar(this.form.display, '7')">
<input type="button" value="    8    " onClick="addChar(this.form.display, '8')">
<input type="button" value="    9    " onClick="addChar(this.form.display, '9')">
<input type="button" value="    /    " onClick="addChar(this.form.display, '/')">
<br>

<input type="button" value="    4    " onClick="addChar(this.form.display, '4')">
<input type="button" value="    5    " onClick="addChar(this.form.display, '5')">
<input type="button" value="    6    " onClick="addChar(this.form.display, '6')">
<input type="button" value="    *    " onClick="addChar(this.form.display, '*')">
<br>

<input type="button" value="    1    " onClick="addChar(this.form.display, '1')">
<input type="button" value="    2    " onClick="addChar(this.form.display, '2')">
<input type="button" value="    3    " onClick="addChar(this.form.display, '3')">
<input type="button" value="    -    " onClick="addChar(this.form.display, '-')">
<br>

<input type="button" value="   0     " onClick="addChar(this.form.display, '0')">
<input type="button" value="    N    " onClick="changeSign(this.form.display)">
<input type="button" value="    +    " onClick="addChar(this.form.display, '+')">
<input type="button" value="   C   " onClick="this.form.display.value = 0 ">
<br>
<input type="button" value="   L    " name="L" onClick="Loop(this.form.display.value)" 
                                               title="If the L button is pressed, the digit present in the results box will be looped through and added up to the 'digit plus 10'.For example: After the calculator has been reset. The user can press the 1 button, then the L button 55 should be displayed in the calculator 1 + 10 = 11, therefore start with 1 and loop until less than 11 adding all of the numbers 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55">
<input type="button" value="   =    " name="enter" onClick="compute(this.form)">
</td>
</tr>
</table>
4

6 に答える 6

4

これをアラートの代わりにJS関数に入れます

document.getElementById("input").value=sum;
于 2012-10-14T07:28:35.777 に答える
0

入力テキスト フィールドが type="text" で適切に記述されていると想定しています。

要素に ID を割り当て、JavaScript を使用してその値を設定できます。を使用してオブジェクトを取得しますdocument.getElementbyId("<Id>")

次に、値を設定しますdocument.getElementbyId("<Id>").value=<value>

于 2012-10-14T07:21:07.617 に答える
0

試す

document.forms[0].display.value=sum;
于 2012-10-14T07:21:45.113 に答える
0

3 つの変更を加えるだけです。次に、今と同じように、任意のテキスト入力で同じ関数を使用できます。

まず、要素自体を関数に渡します

function Loop(input)
{

になる

function Loop(inputElement)
{
  var input = inputElement.value;

次に、アラート出力ステートメントを次のように変更します。

inputElement.value = sum;

最後に、html を変更します (「.value」を削除します)。

onClick="Loop(this.form.display)"
于 2012-10-14T07:30:28.800 に答える
0

入力値を正しく取得していません。次のように実行できます。

<input name="display" id="input1" size="25">
<form>
    <input type="button" value="   L    " name="L" onClick="Loop()">
<form>
<script type="text/javascript">

function Loop()
{
    var input = document.getElementById("input1").value;
    var num = parseInt(input) + 10;
    var sum=0;

    for(var i=0; i<num; i++)
    {
        sum = sum+i;
    }

    document.getElementById("input1").value = sum;
}

</script>

また、 whileforに置き換えました。この場合は読みやすいと思います。

于 2012-10-14T07:30:49.897 に答える
-1
<input type="button" value="   L    " name="L" onClick="Loop(this.form.display.value)">

thisここ<input>では、フォームがなく、documentフォームがあります。したがって、 document.forms[0].display.value必要なものが提供されます。


アップデートの場合:http:
//jsfiddle.net/jNqEv/3/

function Loop(input)
{
     var num = parseInt(input) + 10;
     var i=0;
     var sum=0;

    while(i < num)
        {
            sum=sum+i;
            i++;
        }
    // NOTE: it's not a good idea to give an item `input` ID;
    document.getElementById("input").value=sum; // instead of document.getElementbyId("input").value=sum; 
    // what's this for?
    // document.form[0].display.value=sum; 
}​
于 2012-10-14T07:48:42.650 に答える