0

テキストボックス内の数値 ( )を値 ( ) で割った値keyに対応する値 ( ) を更新しようとしています。ただし、何らかの理由で、関数が実行されていないようです。onchange を間違って使用していますか?angle25changeMe

<script type="text/javascript">

function changeMe(x)
{
var y=document.getElementById(x).value;
y = (y/25);
y = (Math.round(y));
document.getElementById(key).value=y;
}
</script>

<form method="POST" action="">
Your Angle: <input type="text" name="angle" id="angle" 
    onchange="changeMe(this.id)" value="0"/>
Key: <span id="key">0</span><br />
</form>
4

5 に答える 5

1

呼び出されているかどうかを確認するには、これを最初の行として追加します。

alert("Hey, I'm being called!");

さて、ここですでに問題が見られます。関数の最後の行で を実行していますが、二重引用符getElementById(key)で囲む必要があります。keyそうでない場合は、文字列ではなく変数と見なされます。

于 2009-10-19T01:19:57.303 に答える
1

最後の行document.getElementById(key)document.getElementById("key").

<input>ちなみに、 id の代わりに要素を直接渡すことで、これをかなり単純化できます。

<script type="text/javascript">
function changeMe(angle)
{
    var key = document.getElementById("key");
    key.innerHTML = Math.round(angle.value / 25);
}
</script>

<form method="POST" action="">
Your Angle: <input type="text" name="angle" id="angle" 
    onchange="changeMe(this)" value="0"/>
Key: <span id="key">0</span><br />
</form>
于 2009-10-19T01:20:09.713 に答える
1

これchangeMe(this.id)は私を悩ませます。私はただ(this).エラーが発生する可能性があるため、changeMe 関数の先頭にブレーク ポイントを挿入して、渡された内容を確認できます。

他の 2 つは、getElementById の問題について既に言及しています。

于 2009-10-19T01:21:35.490 に答える