Javascript 我的Jquery代码有什么问题?如果密码不匹配,尝试不重新加载表单

Javascript 我的Jquery代码有什么问题?如果密码不匹配,尝试不重新加载表单,javascript,jquery,html,forms,flask,Javascript,Jquery,Html,Forms,Flask,当我点击提交时,如果我的密码1和密码2不匹配,我试图使我的表单不重新加载。我的代码有什么问题,附加html和js <label for="password">Lösenord: </label> <input type="password" class="form-control" id="password" name="password" placeholder="Lösenord" required> <p>

当我点击提交时,如果我的密码1和密码2不匹配,我试图使我的表单不重新加载。我的代码有什么问题,附加html和js

<label for="password">Lösenord: </label>
        <input type="password" class="form-control" id="password" name="password" placeholder="Lösenord" required>
        <p>
        </p>
        <label for="password2">Upprepa Lösenord: </label>
        <input type="password" class="form-control" id="password2" name="password2" placeholder="Lösenord" required>
        <p>
        </p>

更新:已尝试更改为“!=”和passwor.val(),但仍不起作用

如果我没记错的话,您只得到对DOM元素的引用。要获取该值,需要使用
.val()

你也在做除法而不是比较。您的if语句比较应为:


  $("#submit").click( function(event) {
    var password1 = $("#password").val();
    var password2 = $("#password2").val();

    if (password1 !== password2) {
      event.preventDefault();
    }

  });
if(password1.val()!==password2.val()){

您还需要在click listener上传递事件对象。因此,总体而言,它应该是:


  $("#submit").click( function(event) {
    var password1 = $("#password").val();
    var password2 = $("#password2").val();

    if (password1 !== password2) {
      event.preventDefault();
    }

  });

将单击事件附加到
preventDefault()
的一部分, 简单逻辑比较器
!=
应该在您的示例中使用,因为它与对象类型无关,如果字段为空,则最终会阻止真正的验证

$(“#提交”)。单击(功能(事件){
var password1=$(“#password”).val().length>0?$(“#password”).val():'a';
var password2=$(“#password2”).val().length>0?$(“#password2”).val():'b';
//如果为空,则防止为true
如果(密码1!=密码2){
event.preventDefault();
}
});

Lösenord:

乌普雷帕·洛塞诺德: 好啊


除了@Joshua Robles指出的问题

向输入字段添加空的
属性,如下所示:

完整代码和演示:

$(“#提交”)。单击(功能(事件){
var password1=$(“#password”).val();
var password2=$(“#password2”).val();
如果(密码1!==密码2){
警报(“密码不匹配”)
event.preventDefault();
}
});

Lösenord:

乌普雷帕·洛塞诺德:


忽略“警报功能”
password1/=password2
?你在这里用除法做什么?我想你有一个输入错误,“password1/=password2”应该是password1!=password2@CodeManiac我很确定他们在尝试“不=”好了。我想Haskell使用了这个操作符。试过了,看到我的输入错误,仍然不起作用。我应该也更改我的var声明还是保持不变?是的,我没有注意到。你的代码上有公开的全局
preventDefault
函数吗?你可能需要在onClick函数上有一个
事件
参数,然后使用
preventDefault
来自该对象的函数。我将更新我的回答我没有提交按钮的onclick函数,它通过我的routes.py工作并发送一个post方法。我认为Jquery占主导地位?我对Jquery是新手。我的想法是preventDefault阻止提交通常使用的post方法。您正在创建一个cli在你的提交按钮上点击事件监听器。我建议你阅读javascript基础知识和jquery如何工作,以便完全理解你正在尝试做的事情。再说一遍,我不建议你使用jquery,因为它们以前提供的许多功能现在已经在现代浏览器上可用。我更新了我的答案。希望它能有所帮助!