在加载php页面之前,Javascript没有加载onClick验证表单

时间:2016-11-23 20:49:18

标签: javascript html

我正在编写一段HTML和JavaScript代码,我需要在点击按钮之前检查输入是否已填充。但是,当我将它们留空时,它会进入php页面,将变量传递给空。 我已经做了一些测试,并且我已经得出结论,它根本没有加载onClick功能。 这是代码(没有所有CSS的东西):

      <div class = "register">
    <form action = "register.php" method = "post" name = "reg1" id = "register" onClick = "return validateForm();">
      <input type = "text" class = "reg" id = "name" name = "name"/>
       <div class = "alert" id = "inserthere1"> </div>
      <input type = "text" class = "reg" id = "surname" name = "surname"/> <div class = "alert" id = "inserthere2"></div>
      <input type = "text" class = "reg" id = "mail" name = "mail" /><div class = "alert" id = "inserthere3"></div>
      <input type = "submit" value = "Join!" >
      </form>
    </div>

  <script language = "JavaScript">
    function validateForm() {
      var n = document.getElementById("name").value;
      var c = document.getElementById("surname").value;
      var m = document.getElementById("mail").value;
      alert("Nome:"+n+"Cognome:"+c+"Mail:"+m);
      document.getElementById("inserthere1").innerHTML = (n===null || n==="" ? '<i> This cannot be left empty. </i>' : '');
      document.getElementById("inserthere2").innerHTML = (c===null || c==="" ? '<i> This cannot be left empty. </i>' : '');
      document.getElementById("inserthere3").innerHTML = (m===null || m==="" ? '<i> This cannot be left empty. </i>' : '');
      if ( n===null || c===null || n==="" || c==="" || m===null || m==="" )
        return false;
        }
      return true;
      }

3 个答案:

答案 0 :(得分:0)

您必须在提交事件中使用 preventDefault 或使用按钮而不是输入,之后您必须使用按钮上的onclick事件,而不是使用将验证是否输入已填写或未填写。

验证表单后,您可以使用它来提交表单

document.getElementById("myForm").submit();

这会将表单数据发送到动作脚本。

参考:preventDefault Documentation | W3CSchools

参考2:Form Submit method | W3CSchools

答案 1 :(得分:0)

尝试使用

<form>..</form>
document.addEventListener('click', validateForm, false);
<script language = "JavaScript">
   function validateForm() {
     ..
</script>

答案 2 :(得分:0)

所以你想确保在继续之前填写字段吗?您可以使用:

from keras.layers import LSTM
import tensorflow as tf

my_graph = tf.Graph()
with my_graph.as_default():
    x = tf.placeholder(tf.float32, shape=(None, 20, 64))
    y = LSTM(32)(x)  

这样,用户必须使用 required =“”填写字段,否则他们的浏览器不会让他们提交表单。