0

1 つのテキストと 1 つのチェックボックスを含む単純なフォームを作成しました。次に、onsubmit フォームを実行する関数を書きました。onsubmit 関数のテキストとチェックボックスの値をクリアしてフォームを送信すると (テキストは変数の名前のみを送信し、値はなく、チェックボックスは何も送信しません)、そうでなければ、onsubmit 関数がなくてもすべて問題ありません。なんで?コードがあります:

<!DOCTYPE html>
<html>
<head>
<script>

function addInput(task) {
document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>";
}
</script>
</head>
<body>

<form method="get" id="adminForm" onsubmit="addInput('Save')">
<input type="text" name="example"/>
<input type="checkbox" name="box" value="1"/>
<input type="submit" name="tas" value="Send"/>
</form>

</body>
</html> 
4

1 に答える 1

1

いくつかの問題

  1. 送信を停止するには、false を返す必要があります。ページがリロードされているだけです。代わりに、サーバーからの結果を表示して、送信されたことを確認します。

  2. フォームではなく、div を更新する必要があります。

<!DOCTYPE html>
<html>
<head>
<script>

function addInput(task) {
  document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>";
  window.console && console.log(task+" added");
  return false; // remove this if you want the form to be submitted
}
</script>
</head>
<body>

<form method="get" onsubmit="addInput('Save')">
  <div id="adminForm"> 
    <input type="text" name="example"/>
    <input type="checkbox" name="box" value="1"/>
    <input type="submit" name="tas" value="Send"/>
  </div>
</form>

</body>
</html> 
于 2013-07-17T13:17:09.917 に答える