我在JQuery中构建了一个小型表单验证器。现在我的输出有问题。
del
if语句 $(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 (error['pwd']) {
不起作用。
有没有人知道如何修复它? 谢谢!!!
答案 0 :(得分:1)
尝试对代码进行以下修改,如果错误是一个对象,事情将更容易工作,代码将更容易理解,我不确定为什么你将错误变成一个字符串。希望它有所帮助。
//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>');
}
//}