0

最小の長さをチェックするフォーム検証がありますが、これは正常に機能します。ただし、最大長も確認する必要があります。

「msg」というテキストエリアフィールドに次のコードを使用して、最小の長さを確認しています。これは正常に機能します。

 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");
}

2つの引数をどのように組み合わせることができますか?

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);

2番目の引数として渡された真の値は、クラスを追加します。誤った値はそれを削除します。

于 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または、テキストボックスのプロパティをいつでもに設定でき、250250文字を超える長さを心配する必要はありません。:)

于 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 に答える