[英]JQuery form validation if statements don't work
我在JQuery中构建了一个小型表单验证器。 现在我的输出有问题。
$(function () {
$('.register').submit(function (event) {
$('.form-group').removeClass('has-error'); // remove the error class
$('.help-form').remove();
var lengthp = $('input[name=password]').val().length;
//alert(length);
var error = new String();
if ($('input[name=password2]').val() != $('input[name=password]').val()) {
error['pwd'] = "Die Passwörter stimmen nicht überein!";
}
if (lengthp < 7) {
error['length'] = "Das Passwort muss mindestens 8 Zeichen lang sein.";
}
if (error) {
// add the error class to show red input
if (error['pwd']) {
$('#passgroup2').addClass('has-error');
$("#passgroup2 > div").append('<span class="help-block help-form">' + error['pwd'] + '</span>');
}
if (error['length']) {
$('#passgroup').addClass('has-error');
$("#passgroup > div").append('<span class="help-block help-form">' + error['length'] + '</span>');
}
}
//alert($('input[name=password]').val()));
event.preventDefault();
});
});
if语句if (error['pwd']) {
可以正常工作,但是if (error['length']) {
有谁知道如何解决它? 谢谢!!!
尝试对代码进行以下修改,如果错误是一个对象,那么事情将变得更容易工作,并且代码也将变得更容易理解,我不确定为什么将错误变成字符串。 希望能帮助到你。
//Error object
var error = {};
if ($('input[name=password2]').val() != $('input[name=password]').val()) {
//setting pwd error property
error.pwd = "Die Passwörter stimmen nicht überein!";
}
if (lengthp < 7) {
//setting length error property
error.length = "Das Passwort muss mindestens 8 Zeichen lang sein.";
}
//Getting rid of this if because as it is defined, it will be always truthy
//if (error) {
// add the error class to show red input
if (typeof error.pwd !== "undefined") {
$('#passgroup2').addClass('has-error');
$("#passgroup2 > div").append('<span class="help-block help-form">' + error['pwd'] + '</span>');
}
if (typeof error.length !== "undefined") {
$('#passgroup').addClass('has-error');
$("#passgroup > div").append('<span class="help-block help-form">' + error['length'] + '</span>');
}
//}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.