繁体   English   中英

通过模型更改下拉选择时如何触发jquery事件

[英]how to trigger jquery event when dropdown selection changes via model

我有一个名称列表,旁边有一个编辑按钮。 单击编辑按钮后,操作结果将加载部分内容进行编辑,并在文本框中填写名称。 在这个部分上,我还有一个下拉列表,显示图像文件名的列表。 我有更改事件的jQuery代码,以显示所选图像的一些图像。 当我更改下拉选择时,就可以正常工作。 但是,当我单击“编辑”按钮并将名称填充在文本框中,并且通过模型设置了下拉菜单的选择时,不会触发change事件。

如果选择更改但用户未更改,是否可以在下拉列表上触发更改事件?

您能否在剃须刀的@if(...){...}行中触发jquery函数。

例如:

@if (m=>m.image.length >0)
{
   //do something here to trigger the change event of the drop down list
}

任何帮助将是巨大的!

我认为没有必要在if条件内调用javadcropt事件。您可以执行什么操作来完成文档加载完成事件,也可以基于选择进行图像渲染。 像这样的东西:

$(function (){
  var selection = $(#'youdropdownid').val ();
  //do the things based on the value.

});

另一种方法是在元素上触发事件处理程序,如下所示:

$( "#yourdropdownd" ).trigger( "change" );

尽管我觉得手动调用事件处理程序是不必要的。

也许您可以执行以下操作:

@if (m=>m.image.length > 0){  
    <script> 
        $( "#dropdownlist" ).trigger("change");   
    </script> 
} 

通过结合Felix和Qamar的两个建议,我设法使它起作用。

我已经在索引页面上的Jquery代码中,局部元素是其中的一部分。 我将触发代码放在该脚本后面:

@section Scripts 
{
  <script>
    $(function () 
    {
      'use strict';

      $('#cbImages').on('change', function () {
      var imgurl = $('#cbImages :selected').val();

      if (imgurl != '') 
      {
        $('#imgPhoto').attr('src', '/PowerConnectorImages/' + imgurl);
        $('#imgPhoto').show();
      } 
      else 
      {
        $('#imgPhoto').hide();
      }
    });
  });
  </script>

  @if (Model.PowerConnector.ImageName != null)
  {
    if (Model.PowerConnector.ImageName.Length > 0)
    {
      <script>
        $(function () 
        {
          $('#cbImages').trigger('change');
        });
      </script>
    }
  }
}

我必须落后,因为更改事件代码必须首先存在。

感谢您的建议!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM