我有兩個下拉分組列表(Optgroup)。我想使用右移,左移按鈕來交換這兩個html控件之間的項目。我可以從左側下拉菜單中選擇一個或多個項目,然後單擊右移按鈕。在這種情況下,我可以將選中的項目移動到右側下拉分組列表中。但項目不會像左側下拉分組列表那樣插入分組列表。如何使用jquery將所選項目從一個下拉組列表(optgroup)移動到另一個下拉組列表(optgroup)?
這是我的html控件。
<select name="AvailableFields" id="AvailableFields" multiple="multiple" size="10">
<option value="">Please select</option>
<optgroup label="Group A">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</optgroup>
<optgroup label="Group B">
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</optgroup>
</select>
<button type="button" title="Forward" id="btnRight">Move Right</button>
<button type="button" title="Backward" id="btnLeft">Move Left</button>
<select name="FieldstoBeMatchedOn" id="FieldstoBeMatchedOn" multiple="multiple" size="10">
</select>
我寫了下面的代碼將項目從左下拉分組列表移動到右下拉分組列表。
<script type="text/javascript">
$(document).ready(function() {
defaultListBind = function (e) {
var selectedOpts = $('#FieldstoBeMatchedOn');
alert(selectedOpts);
$('#FieldstoBeMatchedOn').append($(selectedOpts).clone());
$(selectedOpts).remove();
//e.preventDefault();
}
// defaultListBind();
$('#btnRight').click(function (e) {
var selectedOpts = $('#AvailableFields option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#FieldstoBeMatchedOn').append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
});
$('#btnLeft').click(function (e) {
var selectedOpts = $('#FieldstoBeMatchedOn option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#AvailableFields').append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
});
defaultSelect = function() {
$("#FieldstoBeMatchedOn option").each(function() {
$(this).prop("selected", true);
});
}
});
</script>
如何以分組或分類格式將項目從左下拉列表移動到右下拉列表中?
我非常感謝你在先進的幫助。
看來,當你刪除不需要的工作'}) ;' – Akshay 2015-03-31 04:47:02
使用標識符(===)運算符而不是相等(==)運算符bcoz ==運算符在進行任何必需的類型轉換後將進行比較。 ===運算符不會執行轉換,所以如果兩個值不是相同的類型===將簡單地返回false。 – 2015-03-31 05:40:41