表单验证事件.防止默认不起作用



我是Javascript和Jquery的新手。我目前正在从事大学项目,我有一个用于新密码更改的表单输入控件,如果用户没有输入任何内容,我想避免提交表单。我不确定我是否很好地链接了该方法,或者匹配两个输入字段中的值是否正确。 我知道有一个验证插件,但我想在此之前尝试解决问题。

任何帮助或建议将不胜感激

这是代码

<form id="accmanager" name="accmanager" action="view-acc.php" method="POST">
<h1>Account Management</h1>
<p>
<ul type="none">
<li><input type="radio" name="optaccmanager" checked="checked" id="viewaccinfo" /> View Account Information</li>
<li><input type="radio" name="optaccmanager" id="addacc" /> Add Account</li>
<li><input type="radio" name="optaccmanager" id="tochangepass" /> Change Password
<ul id="changepass" type="none" style="display: none">
<li><input type="text" name="newpassword" id="newpassword" size="23" title="Enter new password" /></li>
<li><input type="text" name="confirmpassword" id="confirmpassword" size="23" title="Re-type new password" /></li>
</ul>
</li>
</ul>
<input id="submitbtn" type="submit" value="View Account" style="display: inline-block;position: absolute;left: 5em;top:20em;" />
</form>

和脚本代码

<script>
//form validation section
$(document).ready(function(){
var changepass = $("#changepass"),
addacc = $("#addacc"),
viewaccinfo = $("#viewaccinfo"),
tochangepass = $("#tochangepass");
addacc.on("click",function(event){
changepass.css("display","none");
$("#submitbtn").attr("value","Add Account");
});
viewaccinfo.on("click",function(event){
changepass.css("display","none");
$("#submitbtn").attr("value","View Account");
});
tochangepass.on("click",function(event){
changepass.css("display","inline");
$("#submitbtn").attr("value","Change Password");    
});
$("form").submit(function(event){
var newpassword = $("#newpassword"),
confirmpassword = $("#confirmpassword");
if ((newpassword.val == null) || (confirmpassword.val == null)) {
event.preventDefault;
newpassword.attr("title","Please enter new password");
}
});
});

尝试更改此设置:

if ((newpassword.val == null) || (confirmpassword.val == null)) {
event.preventDefault;
newpassword.attr("title","Please enter new password");
}

自:

if ((newpassword.val().length == 0) || (confirmpassword.val().length == 0)){
event.preventDefault();
newpassword.attr("title","Please enter new password");
return false;
}

谢谢大家的帮助,我通过更改 if 块表达式对错误进行了排序。

从前面的代码:

$("form").submit(function(event){
var newpassword = $("#newpassword"),
confirmpassword = $("#confirmpassword");
if ((newpassword.val == null) || (confirmpassword.val == null)) {
event.preventDefault;
newpassword.attr("title","Please enter new password");
}
});

对于新代码:

$("form").submit(function(event){
if ($("#tochangepass").is(":checked")){
if (  ($("#newpassword").val().length == 0) || ($("#confirmpassword").val().length == 0)  ) {
event.preventDefault();
newpassword.attr("title","Please enter new password");
}
else  {
return true;
}
}

}

最新更新