表单onsubmit无法执行功能

时间:2019-05-12 17:59:08

标签: javascript html

我已经创建了这个简单的表单设置,我希望验证者在接受表单之前先检查一个字段。但是,无论使用按钮还是输入,似乎都无法使其调用我的validateForm()函数。曾经有一段时间它可以正常工作,但是将其上传到服务器后,再使用git拉动它,完全停止了再次调用该函数。

我很困惑,因为我的眼睛应该起作用。是否有解决此问题的替代方案,解决方案或解决方法?

function validateForm(e) {
  if (document.reg_form.reg_code.value == "unique code value") {
    return true;
  }

  swal({
    type: 'error',
    title: 'Du har ikke indtastet en gyldig registreringskode.',
    showCancelButton: false,
    confirmButtonText: 'OK',
    confirmButtonColor: '#00a651',
  });

  e.preventDefault();
  return false;
}
<form action="<?= get_home_url(); ?>/create-profile/" method="post" onsubmit="validateForm(event)" name="reg_form" id="reg_form" class="form">
  <div class="form__field">
    <label for="" class="form__label">Registreringskode</label>
    <input type="text" class="form__input" required placeholder="Indtast din tilsendte kode" name="user[reg_code]" id="registration" />
    <p class="hidden" id="code_warning">Den indsatte kampagnekode findes ikke!</p>
  </div>
  <input type="submit" value="Opret bruger" form="reg_form" class="btn btn--green btn--large btn--block">
</form>

2 个答案:

答案 0 :(得分:0)

似乎您没有返回任何onsubmit

应为onsubmit="return validateForm(event)"

尝试

<form action="<?= get_home_url(); ?>/create-profile/" method="post" onsubmit="return validateForm(event)" name="reg_form" id="reg_form" class="form">

...
</form>

更新:我刚刚注意到您访问表单输入错误,并在控制台中引发错误。

function validateForm(e) {
  if (document.reg_form['user[reg_code]'].value == "unique code value") {
}

一种更好的方法是使用其ID直接访问输入。

function validateForm(e) {
  if (document.getElementById('registration').value == "unique code value") {
    return true;
  }
  
  alert("Validation failed");
  e.preventDefault();
  return false;
}
<form action="" method="post" onsubmit="return validateForm(event)" name="reg_form" id="reg_form" class="form">
  <div class="form__field">
    <label for="" class="form__label">Registreringskode</label>
    <input type="text" class="form__input" required placeholder="Indtast din tilsendte kode" name="user[reg_code]" id="registration" />
    <p class="hidden" id="code_warning">Den indsatte kampagnekode findes ikke!</p>
  </div>
  <input type="submit" value="Opret bruger" form="reg_form" class="btn btn--green btn--large btn--block">
</form>

答案 1 :(得分:0)

Robin C Samuel是对的,该代码上只有可疑的东西缺少回报。但是,当您谈论上传到服务器并签出...确定不忘记将某些文件添加到git中时?要么带有validateForm的文件丢失,要么是带有swal函数的文件(如果提交处理程序中出现错误,例如缺少函数,则javascript将失败,然后浏览器将提交该表单。)

...等等。还有一件事。试试

swal({
    type: 'error',
    title: 'Du har ikke indtastet en gyldig registreringskode.',
    showCancelButton: false,
    confirmButtonText: 'OK',
    confirmButtonColor: '#00a651'
  });
  • 注意最后一个字段后的逗号。