如何清除和重新填充下拉选项
How to Clear and Repopulate DropDown Options
我有两个下拉列表。一个用于员工指定,另一个用于员工指定。我已经使用Jquery选择插件的可搜索下拉功能。因为我需要删除所有选项,并重新填充下拉列表(雇员)作为选定的名称。两个下拉列表使用这个插件。但我不能在第一个下拉菜单更改后重新填充第二个下拉菜单。It's Working Fine .
$("#DesignationDropdown").change(function () {
$('#EmployeeDropDown').empty();
TaskEmployees($("#DesignationDropdown").val());
var config = {
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
for (var selector in config) {
$('#EmployeeDropDown').chosen(config[selector]);
}
});
Here is My function…
function TaskEmployees(EmpType)
{
var F = 'SelectEmployees';
var D = "{'value':'" + EmpType + "'}";
var C = 'EmployeeDropDown'
var Temp = "";
$.ajax({
type: "POST",
url: PageUrl + '/' + F,
data: D,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function (r) {
var i;
var myItem = r.d.split('#');
$('#' + C).empty();
var opt = document.createElement('option');
EmployeeDropDown.options.add(opt);
opt.value = -1;
opt.text = "-- Select Employee --";
for (i = 1; i < myItem.length; i = i + 2) {
//Temp = Temp + '<option value="' + myItem[i] + '"">' + myItem[i + 1] + '</option>';
var opts = document.createElement('option');
EmployeeDropDown.options.add(opts);
opts.value = myItem[i];
opts.text = myItem[i + 1];
}
var config = {
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
for (var selector in config) {
$('#EmployeeDropDown').chosen(config[selector]);
}
}
您需要触发 selected:updated在通过jquery添加元素后更新所选下拉列表。
$('#EmployeeDropDown').trigger("chosen:updated");
1)代替empty()函数使用如下:
$("#DesignationDropdown").change(function () {
//$('#EmployeeDropDown').empty();
$('#EmployeeDropDown').find('option').remove();
TaskEmployees($("#DesignationDropdown").val());
var config = {
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
for (var selector in config) {
$('#EmployeeDropDown').chosen(config[selector]);
}
});
function TaskEmployees(EmpType)
{
var F = 'SelectEmployees';
var D = "{'value':'" + EmpType + "'}";
var C = 'EmployeeDropDown'
var Temp = "";
$.ajax({
type: "POST",
url: PageUrl + '/' + F,
data: D,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function (r) {
var i;
var myItem = r.d.split('#');
$('#' + C).empty();
var opt = document.createElement('option');
EmployeeDropDown.options.add(opt);
opt.value = -1;
opt.text = "-- Select Employee --";
for (i = 1; i < myItem.length; i = i + 2) {
//Temp = Temp + '<option value="' + myItem[i] + '"">' + myItem[i + 1] + '</option>';
var opts = document.createElement('option');
EmployeeDropDown.options.add(opts);
opts.value = myItem[i];
opts.text = myItem[i + 1];
}
var config = {
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
for (var selector in config) {
$('#EmployeeDropDown').chosen(config[selector]);
}
}
试试这个,
var config = {// global config
'.chosen-select': {},
'.chosen-select-deselect': { allow_single_deselect: true },
'.chosen-select-no-single': { disable_search_threshold: 10 },
'.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
'.chosen-select-width': { width: "95%" }
}
$("#DesignationDropdown").change(function () {
var $employee = $('#EmployeeDropDown');
TaskEmployees(this.value);// this.value
if($('#EmployeeDropDown option').length) {// check the length of employees
for (var selector in config) {
$employee.chosen(config[selector]);
}
}
});
function TaskEmployees(EmpType) {
var F = 'SelectEmployees',
D = { "value" : EmpType},
C = 'EmployeeDropDown',
Temp = "";
$.ajax({
type: "POST",
url: PageUrl + '/' + F,// Note PageUrl must be previously defined
data: D,
dataType: "json",
success: function (r) {
var myItem = r.d.split('#');
var str='';
for (i = 1; i < myItem.length; i = i + 2) {
str+='<option value="'+myItem[i]+'"">'+myItem[i+1]+'</option>';
}
$('#'+C).html('<option value="-1">-- Select Employee --</option>')
.append(str);
}
});// closing ajax function
}
相关文章:
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 使用jquery在选择框中的选项中填充数据
- 解析和填充 jQuery 插件的选项数组
- 动态下拉列表选项在添加多列后未填充
- 使用 ajax 填充选择时没有选定的默认选项的问题
- 使用数组中的选项填充选择菜单
- 如何填充下拉列表,从javascript中的另一个下拉列表中排除任何一个选项
- 创建唯一选项,然后使用 JavaScript 填充多个选择
- 通过遍历JSON文件来填充数据列表选项
- JSON记录中的Sencha填充选项卡
- 如何在选择下拉列表中填充选项值
- 动态创建选择元素并从 SharePoint 列表填充选项
- 动态填充选项在搜索框(选择)bootstrap jquery
- 如何在承诺后用angular ui-select填充选项
- 在angular auth0中包括预填充选项
- 自动填充选项在没有明显原因的情况下消失或重新出现
- html select-用JavaScript填充选项text/值
- asp:DropDownList通过javascript填充选项,不使用clientSideId
- 使用javascript选中复选框时,填充选项列表
- 选择在动态填充选项时更新占位符文本