0

フォームが送信されたときにイベント リスナーを追加しました。これがコードです。

var formo = document.getElementById("ing");
formo.addEventListener("submit", validation, false);

しかし、私はこのコードでボタンタグでフォームを送信しています:

var enviar = document.getElementById("submit_btn");
enviar.addEventListener("click", envioFormulario, false);

function envioFormulario() {
  this.disabled = true;
  this.value = "Sending";
  this.form.submit();
}

これでフォームは送信されますが、送信イベント (コードの最初の行) が機能しないようです。機能させるにはどうすればよいですか?

4

3 に答える 3

1

@Mathletics のコメントに同意します。クリックしたときに検証を行い、検証に合格した場合は送信します。

var enviar = document.getElementById("submit_btn");
enviar.addEventListener("click", envioFormulario, false);

function envioFormulario() {
  if (validation()) {
      this.disabled = true;
      this.value = "Sending";
      this.form.submit();
  } else {
      alert("Validation failed. Didn't submit");
  }
}
于 2013-02-11T18:56:21.667 に答える
0

フォーム要素の「onsubmit」属性に関数名を設定してみてください。

于 2013-02-11T18:56:01.580 に答える
0

あなたの問題は、デフォルトの動作を妨げている可能性があります。

これを行うには、ハンドラー関数でイベントを受け取る必要があります。

function validation( event )
{
  if ( event.preventDefault ) event.preventDefault();
  event.returnValue = false;
  // continue validating
}
于 2013-02-11T19:00:19.377 に答える