我正在制作一个长注册表单,并且需要对其字段进行验证。大多数输入只是文本,但有一个条件复选框和两个性别单选按钮。
所以我试图触发验证如果任何输入为空,条件未选中或选择性别,这对我不起作用:
if(((Nimi&&Osoite&&Postinumero&&Postitoimipaikka&&Postinumero&&Puhelin&&Sahkoposti&&Kurssi&&Kurssilaiset&&Koiranimi&&Koiraika&&Koirarotu)=="") || ((Sukupuoli)=="Valitse")) || ((Ehdot):not(:checked))){
//Input validation
//Gender Validation
//Conditions?
}
我认为还有一个语法错误,但我怎么能让它工作?
要明确:
我希望验证仅在任何输入为空,未选中复选框或无线电选择时触发。
答案 0 :(得分:2)
上帝的母亲。这就是jQuery Validate存在的原因。使用它,这太棒了。
答案 1 :(得分:0)
(Nimi&&Osoite&&Postinumero&&Postitoimipaikka&&Postinumero&&Puhelin&&Sahkoposti&&Kurssi&&Kurssilaiset&&Koiranimi&&Koiraika&&Koirarotu)
如果所有这些变量都是非“虚假”值,则结果为true
,如果有“falsy”,则为false
。然后你将获取该布尔值并将其与空字符串进行比较以获得相等性。 Aka,总是false
。
您需要明确地将它们与emtpy字符串进行比较。此外,您需要使用||
(或)运算符。因为如果任何为空,您希望它运行。不仅如果一切都是。
(Nimi==="")||(Osoite==="")||...
编辑:我已经将相等运算符更改为===
,这意味着比较是严格的,因此非类型转换。例如,以下是使用==
的“虚假”值与使用===
的严格比较之间的一些差异:
"" == false // true
"" === false // false
答案 2 :(得分:0)
&&条件应该工作。如果你和&&一串字符串在一起,一个是“”然后整个评估变成“”,否则它变成最后一个字符串的值。
我认为问题在于您如何选中复选框。如果$是jQuery,那么正确的语法将是:
!$j("selector").is(":checked")