2013-04-22 66 views
0

存在所以这个问题是问在网上有很多,我看到的答案是检查。长度> 0确定是否包含任何选项选择框使用jQuery

所以在我的情况下,选择框可能或者可能不存在。如果存在,它可能没有选择。

我要为下面的代码:

如果选择框存在...... 如果没有选择框选项... 禁用文本区域

因此我写了下面的:

$(document).ready(function() { 
    "use strict"; 

    alert('running globals'); 
    // Only process this block if the contactEmailAddress select box exists 
    if ($('contactEmailAddress').length > 0) { 
     alert('on the comm page'); 

     // If there are no contacts ... 
     if ($('#contactEmailAddress option').size() === 0) { 
      alert('disabling the message box'); 
      $('#message').attr("disabled", "disabled"); 
     } 
    } 
}); 

问题是,因为选择框没有选项,所以决定selectbox.length为0.所以这个块永远不会触发。

我需要另一种方式。

+0

'$( '#contactEmailAddress选项')。大小()<1'? – Ejaz 2013-04-22 16:27:05

回答

7

你错过了从第一$的“ID选择”,而不是搜索元素命名为contactEmailAddress,而不是与ID的contactEmailAddress元素。

if ($('#contactEmailAddress').length > 0) { 

请注意,您可以直接执行$('#contactEmailAddress option').size()而不必担心选择是否存在;没有异常或错误会被抛出。

+0

洛尔错字!有时候我只需要另一双眼睛。可悲的是,我是这家公司唯一的开发人员,所以我没有其他人要求去看看。再次感谢你! – Lurk21 2013-04-22 16:32:13

+0

另外,有关尺寸选项的高度了解。我会直接跳到它。 – Lurk21 2013-04-22 16:32:57

0

您可以使用纯javascript来确定存在的元素。

if(document.getElementById("contactEmailAdress")) 

if(document.getElementsByClassName("option")[0]) 
+0

您可能想要第二个示例中的'getElementsByTagName',并注意到这会在页面上找到* all *'option'元素;不仅仅是那些连接到有问题的选择框的那些。 – Matt 2013-04-22 16:36:49

相关问题