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

您的问题可能与阻止默认行为发生有关。

您需要在处理程序函数中接收事件才能做到这一点。

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

尝试在表单元素的“onsubmit”属性中设置函数名称。

于 2013-02-11T18:56:01.580 回答