【问题标题】:How to refresh drop down when click on select using jquery?使用jquery单击选择时如何刷新下拉列表?
【发布时间】:2015-10-06 09:38:44
【问题描述】:

我在 mvc 中有一个下拉菜单

@Html.DropDownList(
  "Name", 
  new SelectList(Model.Product, "Value", "Text"), 
  string.Concat("-- ", "Please select the item", " --"), 
  new { id = "Product", Class = "form-control" }
)

我动态填充下拉列表。它工作正常。一切正常。当我更改项目时,我使用 jquery onchange 方法执行我想要的操作并刷新下拉列表。但是当用户单击“请选择项目”时,我想刷新下拉列表。当我单击时,请选择不调用 onchange 方法。我该怎么做?

$DropDown.on("change", function () {


            //Here i perfome action
        });

【问题讨论】:

  • 您的 onchange 代码在哪里?
  • 我添加了问题,请检查
  • 所以每次点击或更改时要刷新?还是仅在您第一次点击时,然后在每次更改时?

标签: javascript jquery asp.net-mvc html-helper


【解决方案1】:

您可能想要提取“onchange”函数以便重用它。类似的东西

var changeCallback = function(e) {
  // chage logic
}
$("#dropdownlistname").on("change", changeCallback);
$("#dropdownlistname").on("click", changeCallback);

【讨论】:

    【解决方案2】:
    $(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 
    });
    

    在这种情况下,它将按您的预期工作。这是使用on 函数的Fiddle

    【讨论】:

    • Onchange 工作正常,但是当我点击请选择时,它不会调用
    • 查看console 中的任何错误?
    【解决方案3】:

    user2052156 的回答看起来不错,但如果您希望“点击”仅在第一次发生,那么您可以在第一次调用后删除点击处理程序:-

    $DropDown.on('click change', function(){
    
        //Here i perfome action
    
        $(this).off('click');
    });
    

    Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多