当前位置: 首页 > 知识库问答 >
问题:

JQuery事件。预防默认值和php

董昕
2023-03-14

我有一个关于event.preventdefault.的问题,我在客户端验证中使用了它,只是为了确保填写了用户名和密码。然而,当我按下提交按钮并将验证传递给PHP时,我什么也没得到。我的意思是,当我检查表格是否提交并做回声检查时,我一无所获。但是当我这样做的时候(!isset($_POST['不管')我有东西。如果字段是空的,检查也是如此。我做空的时候什么都没得到,但做了就有收获!空的

Jquery/html代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="css/verneyCustom.css" rel="stylesheet" type="text/css">
  </head>
  <body>
    <div class="container">
      <!-- cms login form -->
      <form action="login.php" method="POST" class="form-signin" id="cms-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <span class="text-center" id="jsError"></span><!-- display client side errors -->
        <input type="text" class="form-control" id="username" placeholder="Username" autofocus><br/>
        <input type="password" class="form-control" id="password" placeholder="Password"><br/>
        <input type="submit" class="btn btn-lg btn-primary btn-block" id="loginToSystem" value="Sign In">
      </form>
    </div> 

    <!-- include jquery v1.10.2 library to validate client side  -->
    <script src="js/jquery.js"></script>
    <script> 
        //if the form is submitted check if values are ok
        $("#cms-signin").submit(function(event){
            if($('#username').val() == "" || $('#password').val() == ""){
                event.preventDefault();
                $("#jsError").html('You must fill in the form.');
            }else if($('#username').val() == ""){
                event.preventDefault();
                $("#jsError").html('Username is required.');
            }else if($('#password').val() == ""){
                event.preventDefault();
                $("#jsError").html('Password is required.');
            }
        }); 
    </script>
  </body>
</html>

PHP代码

<?php

    //include the connection to the cms database
    require_once($_SERVER['DOCUMENT_ROOT'].'/vcm/_cms/resources/database_connect.php');

    //check if the form was sent
    if(isset($_POST['loginToSystem'])){
        echo 'o';
        //create an array for errors
        $errors = array();

        //check if the username and password fields are empty
        //yes we did a check if jquery on the front but some people disable javascript
        if(empty($_POST['username']) || empty($_POST['password'])){
            echo 'empty';
        }else{
            echo 'ok';
        }
    }
    echo'p';

?>

所以基本上,不管发生什么,它都会回显'p',但只有当isset更改为时,它才会回显'o'!伊塞特。当保持原样时,它将回显为空,当更改为时,它将回显为ok!空的

共有1个答案

邢英奕
2023-03-14

正如adeneo所解释的,您必须添加名称

<form action="login.php" method="POST" class="form-signin" id="cms-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <span class="text-center" id="jsError"></span><!-- display client side errors -->
        <input type="text" class="form-control"  name="username" id="username" placeholder="Username" autofocus><br/>
        <input type="password" class="form-control" name="password" id="password" placeholder="Password"><br/>
        <input type="submit" class="btn btn-lg btn-primary btn-block" id="loginToSystem" value="Sign In">
</form>

你也需要

$("#cms-signin").submit(function(event){
        if($('#username').val() == "" && $('#password').val() == ""){
            event.preventDefault();
            $("#jsError").html('You must fill all fields.');
        }
    }); 
 类似资料:
  • 我试图在jQuery数据表中包含一个不可见的列,该列可以设置为default,以代替数据源中遇到的null或未定义的列。 假设我正在使用一个6列数据表。前5列可见。第6列设置为不可见。并且它必须包含true或false,而不管数据源对象是否具有相应的键。在DataTable的列定义中,我尝试了这个方法,但没有成功。 根据API,我认为仅在为空时才起作用。也许这就是它不起作用的原因。我提供了超文本标

  • 问题内容: 我正在尝试做类似于嵌入式Google地图的操作。我的组件应忽略单点触摸(允许用户滚动页面),并在其自身外部捏合(允许用户缩放页面),但应对双键触摸做出反应(允许用户在组件内部导航),并在这种情况下禁止任何默认操作。 如何防止触摸事件的默认处理,仅在用户用两只手指与我的组件进行交互的情况下? 我尝试过的 我尝试捕获,和。事实证明,在FF Android上,对部件进行捏合时触发的第一个事件

  • 本文向大家介绍js阻止冒泡和默认事件(默认行为)详解,包括了js阻止冒泡和默认事件(默认行为)详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js阻止冒泡和默认事件方法,供大家参考,具体内容如下 阻止冒泡。冒泡简单的举例来说,儿子知道了一个秘密消息,它告诉了爸爸,爸爸知道了又告诉了爷爷,一级级传递从而引起事件的混乱,而阻止冒泡就是不让儿子告诉爸爸,爸爸自然不会告诉爷爷了。下面的d

  • 问题内容: 如何防止onclick方法中的默认设置?我有一个传递自定义值的方法 问题答案: 让您的回调返回并将其传递给处理程序: 但是,要创建可 维护的 代码,您应该避免使用_“内联Javascript”_(即直接位于元素标签内的代码),并通过包含的Javascript源文件(称为unobtrusiveJavascript)修改元素的行为。 标记: 代码(单独的文件):

  • 本文向大家介绍js事件冒泡、事件捕获和阻止默认事件详解,包括了js事件冒泡、事件捕获和阻止默认事件详解的使用技巧和注意事项,需要的朋友参考一下 谈起JavaScript的 事件,事件冒泡、事件捕获、阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免。 1.事件冒泡 先来看一段代码: html代码 你的本意是触发button这个元素,却连同父元素绑定的事件一同触发。这就是事件冒泡。 如

  • 问题内容: 我收到了一个我无法复制的错误报告,但是ajax调用超时是当前的最佳猜测。 因此,我试图找出jQuery 调用超时的默认值。有人有主意吗?在jQuery文档中找不到。 在此先感谢Marcus 问题答案: 似乎没有标准化的默认值。我感觉默认值为,而超时事件完全取决于浏览器和网络设置。 对于IE,还有对XmlHttpRequests超时属性在这里。它默认为null,表示网络堆栈很可能是第一个