0

さて、私はここで非常に明白な何かを見逃しているとかなり確信していますが、私は今のところ適切な解決策を見つけることができませんでした。私がやろうとしていることは単純です。ユーザーにフォームに何かを書き込んでもらい、フォームを送信してもらい、その入力を同じページのテキストエリアに書き込んでもらいます。

これは私のコードです:

<html><head></head>
<body>
<form name='registration'>
<label for="input">Input:</label>
<input type="text" id="input"/>
<input type="submit" id="submit" value="Submit" onclick="execute()"/>
</form>

<div id="results">
<span>Result</span>
<span><textarea cols="30" rows="5" id="resulttext" readonly="readonly"></textarea> </span>
</div>

<script>
function execute()
{
    var result = document.getElementById("input").value

    document.getElementById("resulttext").value=result;
}
</script>

</body>
</html>

フォームに何かを入力すると、何も表示されない状態に戻る前に、textareaに入力が短時間表示されます。私の推測では、textareaフィールドはexecute()関数の期間中のみ変更されます。

すべてに変更input type="submit"すると、<button>意図したとおりに機能しますが、そうすることは想定されていません。

4

2 に答える 2

2

送信ボタンのデフォルトイベントをキャンセルする必要があります。そうしないと、フォームが送信されます(この場合、名前の付いたフォーム要素がないため、基本的にページが再読み込みされます)。return false;後に追加( 2つの部分の間execute()にaを入れます);

于 2012-09-27T21:36:08.840 に答える
1

ボタンはタイプであるため、メソッドsubmitの実行後にフォームを送信します。execute()ボタンの種類をに変更するtype="button"と、この送信動作はなくなります。

http://jsfiddle.net/PCCbh/

注-<button>この場合、使用しても問題ありません。本質的にはと同じ<input type="button"です。

于 2012-09-27T21:39:39.337 に答える