3

送信ボタンがクリックされたときにフォームに追加したい非表示の入力タグの変数名と値があります。コーディングするにはどうすればよいですか?

これが私のコードです:

<script type="text/javascript">

hname="reference";
hvalue="1";

function insertInput(){
document.write( "<input type='hidden' name='" + hname + " ' value=' " + hvalue + " '/><br/>");
}

</script>


<form id="form1">
    <p><label>Username:</label> <input type="text" name="username" size="10"/></p>
    <p><label>Password:</label> <input type="password" name="password" size="10"/></p>

    <p id="hidden"><!-- Insert Hidden input tag here --></p>

    <button type="submit' onClick="insertInput();">Log In</button>  
</form>

私はそれを機能させることができないようです。

4

3 に答える 3

3

document.write()ドキュメントが解析されている間のみ機能します。ドキュメントが準備完了状態になる (つまり、DOMContentLoadedイベントが発生する) とすぐに、document.writeは暗黙的に を呼び出しdocument.open()、ドキュメントをリセットします。

これには DOM メソッドを使用します。

var form = document.getElementById('form1');
form.addEventListener("submit", function() {
  var input = document.createElement('input');
  input.type = 'hidden';
  input.name = 'reference';
  input.value = '1';
  this.appendChild(input);
}, true);
于 2013-03-07T23:38:56.403 に答える
2

ページの読み込み中にのみ機能するためdocument.write、これは機能しません。ページの読み込み後に使用しようとすると失敗します。

純粋な DOM スクリプトでそれを行うこともできますが、 jQueryのような DOM ライブラリを使用することをお勧めします。

jQueryでそれを行う方法は次のとおりです。

<form id="form1">
    <p><label>Username:</label> <input type="text" name="username" size="10"/></p>
    <p><label>Password:</label> <input type="password" name="password" size="10"/></p>

    <button type="submit">Log In</button>  
</form>

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
    var hname = "reference",
        hvalue = "1";

    $("#form1").on("submit", function () {
        $(this).append("<input type='hidden' name='" + hname + " ' value=' " + hvalue + " '/><br/>");
    });
});

</script>
于 2013-03-07T23:51:43.487 に答える