【问题标题】:Message prompted up onsubmit return validate but form still submits在提交返回验证时提示消息,但表单仍提交
【发布时间】:2017-11-08 06:16:13
【问题描述】:

我遇到了一些与onsubmit return false does not work, form still submits? 非常相似的问题 我已经按照解决方案进行了,但是如果我将其更改为onclick,它将无法正常工作,甚至没有消息提示。

我正在使用的脚本。

<script>
function validate()
{
  var validate = false;
  if(document.getElementById("nameId").value == "")
  {  
    alert("NAME IS REQUIRED");
    validate   = false
  }

return true ;
}

</script>

我的代码附在下面。

<table class="<?php echo $table_style_3;?>" style='width: auto;'>
<form action="fhd_add_type.php" method="post" class="form-horizontal"   onsubmit="return validate()"> //This is the part where i've changed to onclick
<input type='hidden' name='nacl' value='<?php echo $nacl;?>'>
<input type='hidden' name='type' value='<?php echo $type;?>'>
<?php
if ($type <> 0) { ?>
    <tr><td>Name: </td><td><input type='text' name='type_name' id = "nameId"></td></tr> //This is the field where need to be validate
    <tr><td colspan='2'><input type='submit' value='add' class='btn btn-primary'></td></tr>
    </table>
<?php  }
if ($type == 0) { ?>
    <tr><td>Name</td><td><input type='text' name='type_name' id = "nameId"></td></tr> //This is the field where need to be validate
    <tr><td>Email</td><td><input type='text' name='type_email'></td></tr>
    <tr><td>Location</td><td><input type='text' name='type_location'></td></tr>
    <tr><td>Phone</td><td><input type='text' name='type_phone'></td></tr>
    <tr><td colspan='2'><input type='submit' value='add' class='btn btn-primary'></td></tr>
    </table>
<?php }?>
</form>
</table>

【问题讨论】:

    标签: javascript php jquery validation


    【解决方案1】:

    我认为这是因为您总是返回 true。在你的 JS 中,试试这个:

    <script>
    function validate()
    {
      var validate = true;
      if(document.getElementById("nameId").value == "") {  
           alert("NAME IS REQUIRED");
           validate = false;
        }
    
        return validate;
    }
    </script>
    

    【讨论】:

    • 通过这个更新你的脚本它工作得很好
    • 嗨@Clonkex 我也对你的帖子投了赞成票,别担心。哈哈,它也有效
    【解决方案2】:

    嗯,你总是从 Validate() 返回 true。它应该更像以下内容:

    <script>
    function validate()
    {
      var valid = true;
      if(document.getElementById("nameId").value == "")
      {  
        alert("NAME IS REQUIRED");
        valid = false;
      }
    
      return valid;
    }
    
    </script>
    

    【讨论】:

      【解决方案3】:

      解决了您的问题

      <script>
      function validate()
      {
        var validate = false;
        if(document.getElementById("nameId").value == "")
      {  
         alert("NAME IS REQUIRED");
         return false;
         //validate   = false
      }
      
      return true ;
      }
      
      </script>
      

      **通过这个脚本更新你的脚本 **

      【讨论】:

      • 通过这个更新你的脚本它工作得很好
      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 2011-05-12
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      相关资源
      最近更新 更多