消息提示onsubmit返回验证但表单仍然提交

时间:2017-06-07 04:18:28

标签: javascript php jquery validation

我有一些非常相似的问题,请参考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>

3 个答案:

答案 0 :(得分:2)

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

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

    return validate;
}
</script>

答案 1 :(得分:2)

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

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

  return valid;
}

</script>

答案 2 :(得分:1)

解决了您的问题

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

return true ;
}

</script>

**通过此脚本更新脚本 **