2012-07-18 109 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