DropDownListFor onchange但具有相同的值

时间:2018-08-17 15:58:38

标签: c# asp.net-mvc razor

我正在尝试触发onchange事件,即使他们选择的值与以前相同。我已经尝试过onselect,但是它根本不会触发。如果值相同,则onchange不会触发。还有其他可以用来实现这一目标的模式吗?

@Html.DropDownListFor(m => m.SelectedMarkdownDate, Model.ValidDatesSelectList, new{onchange = "LoadGridData(this);" })

2 个答案:

答案 0 :(得分:0)

最终使用JQuery:

var go = false;
$('#SelectedMarkdownDate').on('click',function() {//on click
    if (go) {//if go

        var date = $('#SelectedMarkdownDate option:selected').text();

        LoadGridData(date);

        go = false;//switch off

    } else { go = true; }//if !go, switch on
}).on('blur', function () { go = false; }); 

答案 1 :(得分:0)

看起来您已经回答了问题,但是我已经摆弄了个小提琴。

您可以使用带有模糊效果的onClick事件来告知下拉列表是否打开,当您选择相同的项目时,它会向您发出警报,只是表明它可以识别该事件。

https://jsfiddle.net/Anon_E_Mustard/yoxs0gk8/

<script>
  var dropboxOpen = false,
      oldItem     = null;
      counter       = 0;
  function onClick(e) {
      if (dropboxOpen) {
          if (oldItem && oldItem === e.target.value) {
              alert("same selected")
          }
          oldItem = e.target.value;
          dropboxOpen = false;
      }else{
        dropboxOpen = true;
      }

  }

  function onBlur(e){
    dropboxOpen = false;
  }
</script>


<select onclick="onClick(event)" onblur="onBlur(event)">
  <option value="volvo">volvo</option>
  <option value="saab">saab</option>
  <option value="opel">opel</option>
  <option value="audi">audi</option>
</select>