2012-12-15 71 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,但我不明白如何解决它,因为我希望。 –