2011-07-19 55 views
1

請幫我解決這個問題
我想顯示其選定的項目文本不是「選擇答案」的下拉菜單的數量。
下面是我的HTML代碼..選擇的項目文本不是「選擇答案」的下拉菜單的顯示數量

<table> 
     <tr> 
      <td> 
      <select id="S1" class="dropdown"> 
        <option value="" selected="selected">Select answer</option> 
        <option value="1">A</option> 
        <option value="2">B</option> 
        <option value="3">C</option> 
     </select> 
     </td> 
      <td> 
      <select id="S1" class="dropdown"> 
        <option value="" selected="selected">Select answer</option> 
        <option value="1">A</option> 
        <option value="2">B</option> 
        <option value="3">C</option> 
     </select> 
     </td> 
    </tr> 
    <table> 

下面是我的jQuery代碼

$('select').change(function() 
    { 
    alert($(this).parents('TR').find('select').filter($(this).find("option:selected").text()!="Select answer").size()) 
    }); 

但它不工作,這似乎有一些問題,我code.Please幫助我的人。

+0

如果第一個選項的值始終是'「」',那麼可以使用'$(「select [value =='']」)。length'。如果不是,Dogbert提供的答案應該可以工作。 –

回答

0

試試這個:

var count = $(this).parents('TR').find('select').filter(function() { 
    return $(this).find("option:selected").text() == "Select answer"; 
}).length; 

alert(count); 
0

修復你的HTML所以選擇具有唯一的ID:

<table> 
     <tr> 
      <td> 
      <select id="S1" class="dropdown"> 
        <option value="" selected="selected">Select answer</option> 
        <option value="1">A</option> 
        <option value="2">B</option> 
        <option value="3">C</option> 
     </select> 
     </td> 
      <td> 
      <select id="S2" class="dropdown"> 
        <option value="" selected="selected">Foobar</option> 
        <option value="1">A</option> 
        <option value="2">B</option> 
        <option value="3">C</option> 
     </select> 
     </td> 
      <td> 
      <select id="S3" class="dropdown"> 
        <option value="" selected="selected">Select answer</option> 
        <option value="1">A</option> 
        <option value="2">B</option> 
        <option value="3">C</option> 
     </select> 
     </td> 
    </tr> 
<table> 

使用這個jQuery:

$(function(){ 
    alert($('select').map(function(){ 
     if($(this).find(':selected').html() == 'Select answer') 
     { 
       return $(this).attr('id'); 
     } 
    }).get().join(',')); 
}); 

會提醒S1,S3

0

這應工作:

$('select').change(function() 
{ 
    var count = 0; 
    $("select").each(function() { 
     if (!$(this).val()){ 
      count++; 
     } 
    }); 

    alert(count); 
}); 

嘗試:http://jsfiddle.net/Hn5HC/

而且你有兩個相同的ID。

0

稍有改變@dogbert的:

$('select').change(function(){ 
    var $selects = $(this).closest('tr').find('select'); 
    var answered = $selects.find('option:selected').filter(function(i){ 
     return ($(this).val() != '' ? this : null); 
    }).length; 
    alert(answered); 
}); 

DEMO

我個人很喜歡檢查,對所選擇的選項的存在價值,而不是選項的顯示文本 - 但是這可能只是我。

相關問題