JavaScript表单验证。如果需要字段,则发送表单事件

时间:2019-06-11 13:19:55

标签: javascript forms validation

我得到了别人制作的这张表格。这是一种非常简单的形式。问题是,客户正在接收空的提交。该表单已经有一些验证,因此我想知道如何提交。

function check_message() {
  var check = true;
  if (document.getElementById('email').value == '') {
    check = false;
    document.getElementById('email').style.border = '3px solid red';
  } else {
    document.getElementById('email').style.border = '1px solid #cccccc';
  }
  if (document.getElementById('telephone').value == '') {
    check = false;
    document.getElementById('telephone').style.border = '3px solid red';
  } else {
    document.getElementById('telephone').style.border = '1px solid #cccccc';
  }
  if (check) {
    document.getElementById('thaForm').submit();
  }
}
<form id="thatForm" name="" action="soumission_process.php" method="post" class="wpcf7-form" novalidate>
  <input type="text" id="email" name="email" value="" size="40" value="">
  <input type="text" id="telephone" name="telephone" value="" size="40" value="">
  <input type="button" value="send" onClick="check_message();">
</form>

在soumission_process.php中,它只是:

$email= $_POST['email'];
$telephone = $_POST['telephone'];

然后将材料寄出...

有人如何提交跳过验证的表单?我虽然表单可能只是用空白而不是提交的空格填充,但是有一个必需的SELECT且它也是空的。如果我自己尝试,则无法不填写所有字段并在该选择中选择一个选项而提交。

请帮我保存保存为html站点的奇怪Wordpress:D

2 个答案:

答案 0 :(得分:1)

在php脚本中检查表单数据,例如:

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) && (isset($_POST['telephone']) && $_POST['telephone'] != '')){
  $email= $_POST['email'];
  $telephone = $_POST['telephone'];
  // mail datas
}else{
  // do nothing or display error
}

答案 1 :(得分:1)

解决方案1 在每个字段中添加必填项-这不会阻止漫游器收获并向操作提交发布请求

解决方案2

删除操作,如果一切正常,请添加

在两种情况下都要在服务器上检查

window.addEventListener("load", function() {
  document.getElementById("thatForm").addEventListener("submit", function(e) {
    var allOk = 0;
    var emailField = document.getElementById('email');
    var ok = emailField.value.trim() !== '' ? 1 : 0; allOk += ok;
    emailField.classList.toggle("error", !ok)
    var telephoneField = document.getElementById('telephone')
    ok = telephoneField.value.trim() !== '' ? 1 : 0; allOk += ok;
    telephoneField.classList.toggle("error", !ok)
    if (allOk !== 2) {
      e.preventDefault();
    }
    this.action = "soumission_process.php"
  });
});
.error {
  border: 3px solid red
}
<form id="thatForm" method="post" class="wpcf7-form" novalidate>
  <input type="text" id="email" name="email" value="" size="40" value="">
  <input type="text" id="telephone" name="telephone" value="" size="40" value="">
  <input type="submit" value="send">
</form>