php - 如果表单验证失败,请不要提交表单

标签 php javascript dom

我写的

<form action='test.php' method='post'>
.............
<submit onclick='validate();'></submit>
</form>

function valiadte(){
  if(true){
      var form = getElementByID(........);
      form.submit();
  }
  else alert('error');
}

但如果失败,它仍然会转到 test.php。 如果失败,我如何避免它转到 test.php 或者我可以将一些消息传递给 test.php?

提前致谢。

原始源代码:

            <form id="tabS" method="post" action="stdRegister.php">
                    <label>Account</label>
                    <input id="stdAccount" name="account" type="text" value="" class="input-xlarge" onblur="validateAccountAndID(this,document.getElementById('stdAccountHelp'));">
                    <span class="help-block" id="stdAccountHelp"></span>
                    <label>Password</label>
                    <input id="stdPassword" name="password" type="password" value="" class="input-xlarge" onblur="validatePassword(this,document.getElementById('stdPasswordHelp'));">
                    <span class="help-block" id="stdPasswordHelp"></span>
                    <label>Name</label>
                    <input id="stdName" name="name" type="text" value="" class="input-xlarge" onblur="validateName(this,document.getElementById('stdNameHelp'));">
                    <span class="help-block" id="stdNameHelp"></span>
                    <label>IDNumber</label>
                    <input id="stdID" name="idNumber" type="text" value="" class="input-xlarge" onblur="validateAccountAndID(this,document.getElementById('stdIDHelp'));">
                    <span class="help-block" id="stdIDHelp"></span>
                    <label>Department</label>
                    <select id="stdDepartment" name="department">
                        <?php
                            while ($row = $result->fetch_assoc()){
                                    echo"<option>";
                                    echo $row['department'];
                                    echo"</option>";
                        }
                        ?>
                    </select>
                    <label>Grade</label>
                    <select id="stdGrade" name="grade">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                    </select>
                    <div>
                        <button class="btn btn-primary" onclick="submitStudetForm();">Create Account</button>
                    </div>
                    <span class="help-block" id="stdRegisterHelp"></span>
                </form>

function submitStudentForm(){
    var form = document.getElementById('tabP');
    if(
        validateAccountAndID(document.getElementById('stdAccount'),document.getElementById('stdAccountHelp')) 
        && validatePassword(document.getElementById('stdPassword'),document.getElementById('stdPasswordHelp')) 
        && validateName(document.getElementById('stdName'),document.getElementById('stdNameHelp')) 
        && validateAccountAndID(document.getElementById('stdID'),document.getElementById('stdIDHelp')) ){
       form.submit();
       alert("success");
    }
    else {
        alert("Something wrong in the form. Please check again!");
        return false;
        //window.location.href='index.php';
    }
}

最佳答案

只需在 else 情况下使用函数 return false

function validate(){
  if(true){
      return true;
  }
  else {
       alert('error');
      return false;
  }
}

然后您会将 html 更改为:

<input type="submit" value="Submit" onsubmit="validate()">

关于php - 如果表单验证失败,请不要提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155931/

相关文章:

php - Laravel 数据库外观内存使用情况

javascript - 将高分辨率 Adob​​e Creative SDK 从 PHP 转换为 Ruby on Rails

php - MySQL 子查询未返回预期结果

java - JSF 和 Primefaces - RemoteCommand 无法正常工作

Javascript:如何修改函数内的全局变量?

php - 使用自定义元日期显示自定义帖子类型,但保留 WP 中的日程安排功能

javascript - 用于图表单击事件的 Highcharts 指针光标

dom - 如何使用 TSX 使 StencilJS 组件在没有组件标记的情况下呈现?

javascript - 我如何知道用户是否删除了 contenteditable div 中的元素?

javascript - 如何在 JS 表单中显示 createelement(错误)消息?