0

我有一个检查最小长度的表单验证,它工作正常。但是我还需要检查最大长度。

我正在为名为“msg”的 textarea 字段使用以下代码来验证最小长度,它工作正常:

 var msgval    = $("#msg").val();
 var msglen    = msgval.length;

if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}

这很好用,但是如果我为 msglen > 250 添加类似的验证,它会在结构如下时忽略之前的最小长度要求:

if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}
if(msglen > 250) {
$("#msg").addClass("error");
}
else if(msglen <= 250){
$("#msg").removeClass("error");
}

我怎样才能结合这两个论点?

4

3 回答 3

2

使用逻辑 OR 运算符来测试这两个条件。

if (msglen < 4 || msglen > 250) {
    $("#msg").addClass("error");
} else {
    $("#msg").removeClass("error");
}

不需要else if条件。如果它不小于 4 且不大于 250,那么您知道您可以删除该类。


或者更短的版本可以这样写:

$("#msg").toggleClass("error", msglen < 4 || msglen > 250);

作为第二个参数传递的真实值将添加该类。虚假值将删除它。

于 2012-11-10T03:53:51.500 回答
1

我会这样写:

var msgval = $("#msg").val(),
    msglen = msgval.length,
    notValid = msgval.length < 4 || msgval.length > 250;
$('#msg').toggleClass('error', notValid);

或者您可以始终将maxlength文本框的属性设置为250,然后您不必担心长度超过 250 个字符。:)

于 2012-11-10T04:01:58.587 回答
0
if(msglen < 4) {
  $("#msg").addClass("error");
}

添加类error

else if(msglen <= 250){
  $("#msg").removeClass("error");
}

几行后删除它..

你为什么不试试这个。

if(msglen < 4 || msglen > 250) {
    $("#msg").addClass("error");
}
于 2012-11-10T03:52:07.997 回答