使用 jquery 单击 select 时如何刷新下拉菜单?
How to refresh drop down when click on select using jquery?
我在 mvc 中有一个下拉列表
@Html.DropDownList(
"Name",
new SelectList(Model.Product, "Value", "Text"),
string.Concat("-- ", "Please select the item", " --"),
new { id = "Product", Class = "form-control" }
)
我动态填充下拉列表。它工作正常。一切正常。当我更改项目时,我使用 jquery onchange 方法执行我想要的操作并刷新下拉列表。但是我想在用户单击 "Please select the item" 时刷新下拉菜单。当我点击 select 时,不会调用 onchange 方法。我该怎么做?
$DropDown.on("change", function () {
//Here i perfome action
});
$(document).ready(function(){
$('#dropdownlistname').change(function(e){
// Your event handler
});
// And now fire change event when the DOM is ready
$('#dropdownlistname').trigger('change');
});
更多信息Here
编辑
您应该为 on
函数提供一个选择器:
$(document).on('change', 'input', function() {
// Does some stuff
});
在那种情况下,它将按您的预期工作。这是 Fiddle 使用 on
函数
您可能想要提取 "onchange" 函数以便重新使用它。类似的东西
var changeCallback = function(e) {
// chage logic
}
$("#dropdownlistname").on("change", changeCallback);
$("#dropdownlistname").on("click", changeCallback);
user2052156 的答案看起来不错,但如果您希望 'click' 仅在第一次发生,那么您可以在第一次调用后删除点击处理程序:-
$DropDown.on('click change', function(){
//Here i perfome action
$(this).off('click');
});
我在 mvc 中有一个下拉列表
@Html.DropDownList(
"Name",
new SelectList(Model.Product, "Value", "Text"),
string.Concat("-- ", "Please select the item", " --"),
new { id = "Product", Class = "form-control" }
)
我动态填充下拉列表。它工作正常。一切正常。当我更改项目时,我使用 jquery onchange 方法执行我想要的操作并刷新下拉列表。但是我想在用户单击 "Please select the item" 时刷新下拉菜单。当我点击 select 时,不会调用 onchange 方法。我该怎么做?
$DropDown.on("change", function () {
//Here i perfome action
});
$(document).ready(function(){
$('#dropdownlistname').change(function(e){
// Your event handler
});
// And now fire change event when the DOM is ready
$('#dropdownlistname').trigger('change');
});
更多信息Here
编辑
您应该为 on
函数提供一个选择器:
$(document).on('change', 'input', function() {
// Does some stuff
});
在那种情况下,它将按您的预期工作。这是 Fiddle 使用 on
函数
您可能想要提取 "onchange" 函数以便重新使用它。类似的东西
var changeCallback = function(e) {
// chage logic
}
$("#dropdownlistname").on("change", changeCallback);
$("#dropdownlistname").on("click", changeCallback);
user2052156 的答案看起来不错,但如果您希望 'click' 仅在第一次发生,那么您可以在第一次调用后删除点击处理程序:-
$DropDown.on('click change', function(){
//Here i perfome action
$(this).off('click');
});