Javascript 如果语句不';行不通
我在JQuery中构建了一个小型表单验证程序。现在我的输出有问题Javascript 如果语句不';行不通,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我在JQuery中构建了一个小型表单验证程序。现在我的输出有问题 $(function () { $('.register').submit(function (event) { $('.form-group').removeClass('has-error'); // remove the error class $('.help-form').remove(); var lengthp = $('input[name=pass
$(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();
});
});
$(函数(){
$('.register').submit(函数(事件){
$('.form group').removeClass('has-error');//删除错误类
$('.help form').remove();
var lengthp=$('input[name=password]').val().length;
//警报(长度);
var error=新字符串();
if($('input[name=password2]').val()!=$('input[name=password]').val()){
错误['pwd']=“Die Passwörter stimmen nichtüberein!”;
}
如果(长度p<7){
错误['length']=“这是一个8字的密码。”;
}
如果(错误){
//添加错误类以显示红色输入
如果(错误['pwd']){
$('#passgroup2').addClass('has-error');
$(“#passgroup2>div”).append(“”+error['pwd']+“”);
}
if(错误['length']){
$('#passgroup').addClass('has-error');
$(“#passgroup>div”).append(“”+error['length']+“”);
}
}
//警报($('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>');
}
//}
//错误对象
var error={};
if($('input[name=password2]').val()!=$('input[name=password]').val(){
//设置pwd错误属性
error.pwd=“Die Passwörter stimmen nichtüberein!”;
}
如果(长度p<7){
//设置长度错误属性
error.length=“这是一个8字的密码。”;
}
//摆脱它,如果因为它的定义,它将永远是真实的
//如果(错误){
//添加错误类以显示红色输入
if(typeof error.pwd!=“未定义”){
$('#passgroup2').addClass('has-error');
$(“#passgroup2>div”).append(“”+error['pwd']+“”);
}
if(typeof error.length!=“未定义”){
$('#passgroup').addClass('has-error');
$(“#passgroup>div”).append(“”+error['length']+“”);
}
//}
var error
必须是对象
对吗?我不知道为什么如果(error['pwd'])
有效…为什么要使用String
作为数组?Sting是一个文本(字符数组),但不是数据数组。使用var error=[]
或var error={}
取而代之。谢谢@Guillermo的回答很好:)