Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在一个条件下以多个表单元素为目标_Javascript_Jquery - Fatal编程技术网

Javascript 在一个条件下以多个表单元素为目标

Javascript 在一个条件下以多个表单元素为目标,javascript,jquery,Javascript,Jquery,我正在做一个长的注册表单,它的字段需要验证。大多数输入只是文本,但有一个条件复选框和两个性别单选按钮 因此,我试图触发验证如果任何输入为空,未检查条件或未选择性别,这对我不起作用: if(((Nimi&&Osoite&&Postinumero&&Postitoimipaikka&&Postinumero&&Puhelin&&Sahkoposti&&Kurssi&&Kur

我正在做一个长的注册表单,它的字段需要验证。大多数输入只是文本,但有一个条件复选框和两个性别单选按钮

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

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

//Gender Validation

//Conditions?
}
我想还有一个语法错误,但是我如何才能让它工作呢

要清楚:

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

(Nimi&&Osoite&&Postinumero&&Postitoimipaikka&&Postinumero&&Puhelin&&Sahkoposti&&Kurssi&&Kurssilaiset&&Koiranimi&&Koiraika&&Koirarotu)
如果所有这些变量都是非“falsy”值,
falsy
如果任何变量都是“falsy”,则生成布尔值
true
。然后,将该布尔值与空字符串进行比较,以获得相等值。Aka,总是
false

您需要显式地将它们与emtpy字符串进行比较。此外,还需要使用
|
(或)运算符。因为如果有空的,您希望它运行。不只是如果所有人都是

(Nimi==="")||(Osoite==="")||...
编辑:我已将相等运算符更改为
==
,这意味着比较是严格的,因此不进行类型转换。例如,使用
==
的“falsy”值与严格比较
==
的值之间存在一些差异:

"" ==  false // true
"" === false // false

上帝之母。这就是存在的原因。使用它,它是令人惊奇的。

条件应该有效。如果将一组字符串放在一起,其中一个为“”,则整个计算将变为“”,否则它将变为最后一个字符串的值

我认为问题在于如何检查复选框是否选中。如果$是jQuery,则正确的语法为:

!$j("selector").is(":checked")

首先检查每个值是否都不是“falsy”,然后根据字符串对该聚合布尔值进行检查。您需要检查每个元素的
==”
,它没有语法上的糖分。另一个语法错误是,在Valitse“之后有一个额外的)值,它会过早地关闭整个condition子句。@Asad我使用了
if((var1&&var2)=“”){//dosomething}
当var1或/和var2为空时,它触发了验证。@Brant(删除多余部分)没有删除错误。这就是我说“另一个语法错误”的原因“。这不是你唯一的一个。我很不清楚我应该如何在ajax表单提交中使用jQuery验证插件,所以我不会使用它。好奇;这可能已经得到了答复,如果没有,我很乐意帮助你。使用jQuery验证进行ajax提交非常简单。您只需将提交移动到
submitHandler
属性/方法中。如果我必须这样做,为什么
如果((var1和&var2)=“”){//dosomething}
有效?@ChristianNikkanen您在那里使用的赋值应该会引发错误,因为您无法将
分配给
(var1和&var2)
。如果它是
=
,那么是的,它的计算似乎仍然正确,但您应该使用
==
,这是一个严格的比较。我会编辑我的答案来演示。好吧,我会用艰难的方式来做…:)@ChristianNikkanen我已经添加了有关javascript中
==
问题的信息,以及使用
==