2012-11-08 50 views
0

我有这个if语句可以在两个不同的页面上工作,但是这两个页面都有一个不同名称的字段,所以我必须在我的If语句中使用OR,但它不起作用。这里是我的代码...为什么不是这个JQuery如果和或声明工作?

if ($("#searchValue").val().length > 100 || $("#txtSearch").val().length > 100) { 
} 

为什么我调试,它说:“未捕获的类型错误:无法读取属性未定义的‘长’”。
这是因为其中一个属性ID在页面上不存在或是什么?我如何解决这个问题?
谢谢

回答

2

val返回undefined当jQuery集合为空时。如果你一定要具有完全相同的两场之一

var s1 = $("#searchValue").val(); 
    var s2 = $("#txtSearch").val(); 
    if ((s1 && s1.length>100) || (s2 && s2.length>100)) { 

另一种解决方案:

if ($("#searchValue, #txtSearch").val().length>100) { 
+0

哦,那么我该如何解决这个问题,或者我是否需要另一个if语句来检查它们是否为空? – Ben

+0

非常感谢这工作很好:) – Ben

1

将其更改为

if (($("#searchValue").val()!=null && $("#searchValue").val().length > 100) || ($("#txtSearch").val()!=null && $("#txtSearch").val().length > 100)) { 
} 

代替

你可以这样做的

if ($("#searchValue").val().length > 100 || $("#txtSearch").val().length > 100) { 
}