javascript - jQuery 或 AJAX 会使 HTML "required"属性无效吗?

标签 javascript jquery html ajax

我现在正在构建一个注册页面,并根据需要标记了用户名和密码输入。简单代码如下:

Username <input id="username" type="text" required/>
Password <input id="username" type="password" required/>
<button id="register">Register</button>
<div id="registerOutput></div>

当我在本地主机上使用纯 HTML 运行这些代码时,“required”将正常运行。但是,一旦我包含了一个用于获取数据的 register.js 文件并使用 AJAX 将数据发送到 register.php ,所需的属性似乎不起作用。在register.js中,简单代码为:

$(document).ready(function(){
    $("#register").on("click", function(){

        var username        = $("#username").val();
        var password        = $("#password").val();

        var userData = "username=" + username + "&password=" + password;

        $.ajax({
            method: "post",
            url: "register.php?",
            data: userData,
            success: function(backData){
                $("#registerOutput").html(backData);
            }
        });
    });
});

谁能告诉我 jQuery 会覆盖 required 功能的原因吗?如何超越它或者如果它必须重写,我应该如何在我的 jQuery 代码中做同样的事情?

最佳答案

您可能需要稍微重新设计您的代码。有一种方法可以遵循 HTML 的便利性,同时充分利用 AJAX 的功能。

我在 jsfiddle 中编辑了你的示例:https://jsfiddle.net/myezf63b/

这里是修改后的 HTML:

<form id="form">
  Username <input id="username" type="text" required/>
  Password <input id="username" type="password" required/>
  <button type="submit" id="register">Register</button>
</form>

<div id="registerOutput">
</div>

基本上,我将 type="submit" 添加到按钮并将其包装在表单内。

这是修改后的 jQuery 代码:

我添加了 e.preventDefault() ,它可以防止网站重定向(重新加载页面),并且作为事件,我使用了遵循此模式的 submit

$(document).ready(function(){ $("#form").on("submit", function(e){
    e.preventDefault()
    var username        = $("#username").val();
    var password        = $("#password").val();

    var userData = "username=" + username + "&password=" + password;
        console.log('test')
    $.ajax({
        method: "post",
        url: "register.php?",
        data: userData,
        success: function(backData){
            $("#registerOutput").html(backData);
        }
    });
  });

});

关于javascript - jQuery 或 AJAX 会使 HTML "required"属性无效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43162858/

相关文章:

javascript - setData 不是函数 + Angular2-Highcharts

javascript - 如何 "dereference"一个对象?

javascript - 如何在一个 PDF 文件中导出两个数据表

javascript - 如何更改复选框旁边的文本颜色

javascript - vars 的警报返回 "length"或 "item"

javascript - 无法更改 'Select' 元素的位置 (ASP.net)

javascript - Angular 5 和 Google Maps v3 Api - 从 map "click"事件获取坐标

javascript - Selectize.js 和 jQuery 验证

jquery - 如何使我的 svg 元素出现?

javascript - 鼠标悬停在贝塞尔曲线上