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

时间:2015-12-27 00:13:38

标签: javascript c# jquery html razor

我有一个名单,旁边有一个编辑按钮。 单击编辑按钮时,actionresult会加载部分内容以进行编辑,并在文本框中填写名称。 在这部分我也有一个下拉列表,显示图像的文件名列表。 我有更改事件的jquery代码,以显示所选的一个小图像。 当我更改下拉选项时,这很好用。 但是,当我单击编辑按钮并在文本框中填写名称并通过模型设置下拉列表的选择时,不会触发更改事件。

如果选择更改而不是用户更改,是否可以在下拉列表中触发更改事件?

你可以在剃须刀的@if(...){...}行中触发一个jquery函数。

例如:

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

任何帮助都会很棒!!

3 个答案:

答案 0 :(得分:1)

我觉得不需要在if条件中调用javadcropt事件。你可以做文件加载完成事件,你可以根据选择进行图像渲染。像这样:

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

});

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

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

虽然我觉得手动调用事件处理程序是非常不必要的。

答案 1 :(得分:1)

也许你可以这样做:

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

答案 2 :(得分:0)

我设法通过结合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>
    }
  }
}

我必须落后,因为变更事件代码需要先存在。

感谢您的建议!