2012-12-15 79 views
0

我是JQuery的新手,我想問的是如何選擇一個選項,然後另一個選項將自動選擇具有第一個選項的屬性。JQuery獲取ID或類,而不是值

我給這樣的代碼:

<select name="kendaraan"> 
    <option value="" selected>pilih kendaraan!</option> 
    <option value="B 2011 DR" class="B2011DR">B 2011 DR</option> 
    <option value="R 3333 OKI" class="R3333OKI">R 3333 OKI</option> 
    <option value="k03">jazz</option> 
    <option value="k04">innova</option> 
</select> 

<select name="driver"> 
    <option value="" selected>pilih kendaraan!</option> 
    <option value="s02" car="B2011DR" style="display:none">jojon</option> 
    <option value="s01" car="B2011DR" style="display:none">mamat</option> 
    <option value="s04" car="R3333OKI" style="display:none">tukul</option> 
    <option value="s03" car="R3333OKI" style="display:none">mamat</option> 
    <option value="s07" car="k03" style="display:none">bejo</option> 
    <option value="s05" car="k03" style="display:none">mamat</option> 
    <option value="s06" car="k03" style="display:none">tukul</option> 
    <option value="s08" car="k04" style="display:none">budi</option> 
    <option value="s09" car="">komeng</option> 
</select> 

$('select[name=kendaraan]').change(function() { 
    //hide all option 
    $('select[name=driver] option').css('display','none'); 
    //display option only for matched driver 
    var isCar = $('select[name=driver] option[car='+$(this).val()+']'); 
    isCar.css('display','block'); 
    //auto select first matched diriver 
    $('select[name=driver]').val($(isCar[0]).val()) 
}) 

但jQuery代碼是獲取的「kendaraan」,如何與類,而不是價值匹配值嗎?

+0

使用'數據'屬性到底是什麼。 – bobthyasian

+0

你願意改變你的HTML是多少? – bobthyasian

+0

的HTML現在將改爲PHP與MySQL數據庫..我用這個代碼來簡化我在這裏解釋我的問題。 –

回答

1

我認爲這是你want.Try以下

<script> 
// make a function that will perform your desired task every time when dropdwon value changes. 
// so call this function in document.ready and also bind change event of dropdown to this function 
$(function() { 
    onDDLchange(); 
    $('select[name$=kendaraan]').change(function() { 
     onDDLchange(); 
    }); 
}); 

function onDDLchange() { 
    var j = 0; 
    var v = $('select[name$=kendaraan]').val(); 
    $('select[name$=driver] option').hide(); 
    $('select[name$=driver] option').each(function (i) { 
     if (v == $(this).attr('car')) { 
      if (j == 0) { 
       $(this).attr('selected', 'selected'); 
       j = j + 1; 
      } 
      $(this).show(); 
     } 
    }); 
} 
</script> 
+0

謝謝代碼的另一個屬性...真的很有用,但如何使第一個選項自動選擇?我使用$('select [name = driver]')。val($(isCar [0])。val())但它不起作用 –

+0

現在嘗試我編輯了我的答案 –

+0

好吧,它仍然是相同的..第一個選項沒有自動選擇 –

0
$(function() { // document ready 
$('option[value=""]').attr('selected', 'selected'); 
}); 

選擇第一個選項會自動

+0

我不明白,你可以修復這個廣告jsfiddle嗎?我的jsfiddle現在:http://jsfiddle.net/jrjgt/1/ –

+0

@CeliaTan最新你的要求...簡單地告訴...將修復jsfiddle – Ghostman

+0

我的jquery代碼獲取「kendaraan」的價值是我想要的是獲得「kendaraan」的課程或ID,然後將驅動程序選項自動選擇爲「kendaraan」ID或課程。我認爲我的代碼在這裏是錯誤的:var isCar = $('select [name = driver] option [car ='+ $(this).val()+']');正好在.val,但我不明白如何解決它,因爲我希望。 –