我正在尝试触发onchange事件,即使他们选择的值与以前相同。我已经尝试过onselect,但是它根本不会触发。如果值相同,则onchange不会触发。还有其他可以用来实现这一目标的模式吗?
@Html.DropDownListFor(m => m.SelectedMarkdownDate, Model.ValidDatesSelectList, new{onchange = "LoadGridData(this);" })
答案 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>