2012-07-18 108 views
0

在我的php文件中,我有兩個選擇菜單。當第一個被選中時,第二個用jquery獲取值。它在簡單的php文件中工作正常。但是,當粘貼到一個文件與jQuery手機發生一個小問題: 隨着第一個改變,第二個值改變正常,但第一個選擇的選項仍然存在。JQuery Mobile選擇菜單的選定選項選擇值

這裏是我的.js文件:

function deg(){ 
var id = document.getElementById("il").options[document.getElementById("il").selectedIndex].value; 
var ilcx; 

switch(id){ 
case "a": 
ilcx = {"x" : "x" 
}; break; 
case "b": 
ilcx = {"y" : "y" 
}; break; 
case "c": 
ilcx = {"c" : "c" 
}; break; 

} 

var $el = $("#ilcx"); 
$el.empty(); 
$.each(ilcx, function(key, value) { 
    $el.append($("<option></option>") 
    .attr("value", value).text(key)); 
}); 

和PHP的一部分:

<select name="il" id="il" onchange="deg();"> 
          <option id="a" value="a">a</option> 
          <option id="b" value="b">b</option> 
          <option id="c" value="c">c</option> 
    </select> 
         <select name="ilcx" id="ilcx"> 
          <option id="x" value="x">x</option> 
          <option id="y" value="y">y</option> 
          <option id="z" value="z">z</option> 

    </select> 
+0

你要刪除從第一個選擇框中選擇的選項? – thecodeparadox 2012-07-18 07:34:38

+0

我想刪除第二個人的前一個選擇,因此第二個人的值更改。 – someoneelse 2012-07-18 07:38:32

回答

0

與所述溶液

HTML

<select name="il" id="il"> 
    <option id="a" value="x" selected="selected">a</option> 
    <option id="b" value="y">b</option> 
    <option id="c" value="c">c</option> 
</select> 
<select name="ilcx" id="ilcx"> 
    <option id="x" value="x" selected="selected">x</option> 
    <option id="y" value="y">y</option> 
    <option id="z" value="z">z</option> 
</select> 
一個個

JS

$(document).on('change', '#il', function() { deg(this); }); 

function deg(obj){ 
    var val = obj.value, 
     $el = $('#ilcx'), 
     $opt = $('<option />'); 

    $opt.val(val).text(val).appendTo($el); 
} 
+0

其實我設置了第一個和第二個選擇菜單的第一個選定的值。當用戶更改第一個選項時,第二個選項值會更改,但之前(和初始值)會保留,直到用戶從新選項中選擇一個選項。 – someoneelse 2012-07-18 08:08:27

+0

如果我正確理解第二個選擇框是完全過時的,我認爲你應該把它作爲輸入並改變它的值...答案更新 – Simon 2012-07-18 09:15:00

+0

不,必須有有限的選擇。所以第二個選擇框應該存在。 – someoneelse 2012-07-18 09:26:59