在一个条件下定位多个表单元素

时间:2012-11-09 19:13:21

标签: javascript jquery

我正在制作一个长注册表单,并且需要对其字段进行验证。大多数输入只是文本,但有一个条件复选框和两个性别单选按钮。

所以我试图触发验证如果任何输入为空,条件未选中或选择性别,这对我不起作用:

if(((Nimi&&Osoite&&Postinumero&&Postitoimipaikka&&Postinumero&&Puhelin&&Sahkoposti&&Kurssi&&Kurssilaiset&&Koiranimi&&Koiraika&&Koirarotu)=="") || ((Sukupuoli)=="Valitse")) || ((Ehdot):not(:checked))){
//Input validation

//Gender Validation

//Conditions?
}

我认为还有一个语法错误,但我怎么能让它工作?

要明确:

我希望验证仅在任何输入为空,未选中复选框或无线电选择时触发。

3 个答案:

答案 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")