使用JQuery,如何检查至少一个文本框不为空?

时间:2010-10-19 15:42:23

标签: jquery

听起来很简单,但却让我感到悲伤:

试过这个:

function validateAddress() {

    if (!($('<%=txtPlaceName.ClientID%>').val() === "")
         || !($('<%=txtStreet.ClientID%>').val() === "")
         || !($('<%=txtAddress.ClientID%>').val() === "")
         || !($('<%=txtPostcode.ClientID%>').val() === "")) {

        return true;
    }

    return false;
}

和此:

function validateAddress() {

    if ($('<%=txtPlaceName.ClientID%>').val().length > 0
         || $('<%=txtStreet.ClientID%>').val().length > 0
         || $('<%=txtAddress.ClientID%>').val().length > 0
         || $('<%=txtPostcode.ClientID%>').val().length > 0) {

        return true;
    }

    return false;
}

但似乎都没有用,我正确地做到了吗?

5 个答案:

答案 0 :(得分:3)

对于#ID selector,您需要#,如下所示:

$('#<%=txtPlaceName.ClientID%>').val().length

但更快的方法是给他们一个班级,例如CssClass="checkMe",然后检查这些元素:

function validateAddress() {
  return $('.checkMe[value!=""]').length > 0;
}

答案 1 :(得分:2)

您忘记了哈希标记,以便按ID选择内容。尝试:

function validateAddress() {

    if ($('#<%=txtPlaceName.ClientID%>').val().length > 0
         || $('#<%=txtStreet.ClientID%>').val().length > 0
         || $('#<%=txtAddress.ClientID%>').val().length > 0
         || $('#<%=txtPostcode.ClientID%>').val().length > 0) {

        return true;
    }

    return false;
}

答案 2 :(得分:0)

您的jquery选择器中的ID似乎缺少“#”。试试这个:

if ($('#<%=txtPlaceName.ClientID%>').val().length > 0 
     || $('#<%=txtStreet.ClientID%>').val().length > 0 
     || $('#<%=txtAddress.ClientID%>').val().length > 0 
     || $('#<%=txtPostcode.ClientID%>').val().length > 0) { 

答案 3 :(得分:0)

您在检查时是否将#添加到元素的ID中,换句话说,生成的文本是这样的:

$('#IDOfElement').val()

答案 4 :(得分:0)

我一直在使用类来分组功能,所以对于你的例子给每个元素一个地址类,那么你的函数将是:

function validateAddress() {
  $('.address').each(function() {
    if ($(this).val().length > 0) {
      return true;
    }
  }
  return false;
}