【问题标题】:Validate form before submitting to php在提交到php之前验证表单
【发布时间】:2013-12-15 21:16:40
【问题描述】:

您好,我正在实现一个登录页面,从 PHP 端一切正常,但现在我将使用 jQuery 实现另一个功能:我想检查登录字段是否为空,如果不是,则打印一些内容页面,否则继续用php,怎么办?

这是我的 HTML 代码的一部分:

<form id="loginForm" action="login-exec.php" name="loginForm" method="post" class="ui-body ui-body-a ui-corner-all" data-ajax="false">
    <fieldset>
        <div data-role="fieldcontain">
            <label class="ui-input-text" for="login">Login:</label>
            <input name="login" type="text" class="textfield" id="login" />
        </div>                                  
        <div data-role="fieldcontain">                                      
            <label class="ui-input-text" for="password">Password:</label>
            <input name="password" type="password" class="textfield" id="password"/> 
        </div>
        <input type="submit" name="Submit" value="Login" />
    </fieldset>
</form>     

【问题讨论】:

  • if(empty($_POST['login'])){ die("Fill in this field."); } else{ // continue }password 字段执行相同操作。您甚至可以同时使用一个条件和 OR 运算符 => ||,这是一种方法。我们需要查看您的实际 (PHP) 处理程序,以 100% 确保我们可以给您明确的答案。
  • @Fred-ii- 对不起,我现在添加了它,我现在通过 action="login-exec.php" 处理 php 文件有没有办法首先从客户端检查字段,然后发送值到服务器端所以触发我的 php 文件?
  • 关于client-side,我无法从头顶编写代码,我自己主要是PHP(服务器端)。但是,下面给出的答案似乎是一个好的开始。

标签: php jquery html ajax


【解决方案1】:

将事件绑定到表单的提交(注意:不是单击提交按钮)。这就是您的代码检查表单的地方,并在必要时阻止它被发布。

$('#loginForm').on('submit', function(e){
    if ($('#login').val()=='' || $('#password').val()==''){
        e.preventDefault();
        // alert('Fill in both fields');
        // You can use an alert or a dialog, but I'd go for a message on the page
        $('#errormsg').text('Fill in both fields').show();
    }else{
        // do nothing and let the form post
    }
});

如果您更喜欢显示消息而不是使用对话框,请在页面的某处,最好在提交按钮附近添加 errormsg div

<p id="errormsg" style="display:none;"></p>

【讨论】:

  • 我需要在按钮上放置触发器吗?因为这样做是行不通的:)
  • 不,您永远不应该在按钮上放置触发器来提交表单。您是否在$(function(){}); 中正确添加了 jQuery?你有没有先加载jQuery?您是否在控制台中看到错误(在 Chrome 中按 F12,然后单击控制台)?
猜你喜欢
  • 2016-12-30
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多