为什么这个Jquery If和Or Statement不起作用?

时间:2012-11-08 10:13:26

标签: jquery if-statement

我有这个if语句适用于两个不同的页面,但是这两个页面都有一个具有不同名称的字段,所以我必须在我的If语句中使用OR,但它不起作用。这是我的代码......

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

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

2 个答案:

答案 0 :(得分:2)

当jQuery集合为空时,

val返回undefined

你可以这样做:

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

另一种解决方案,如果您确定只有两个字段中的一个:

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

答案 1 :(得分: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) {
}