防止 select2 下拉列表的自动触发事件调用函数
prevent AutoTrigger event of select2 Dropdown to call functions
>Edit :
我的目标是当手动选择一个下拉列表时,它只应该设置另一个下拉列表的值,而不是在更改事件时调用其方法
我有 2 个"选择2"下拉菜单..
@*Dropdown 1*@
<div >
@Html.DropDownList(Model.DDL1, new SelectList(GetCmnlSection(), "Value", "Text", Model.DDL1),new { onchange = "DDL1Operation();" })
</div>
@*Dropdown 2*@
<div >
@Html.DropDownList(Model.DDL2, new SelectList(GetCmnlSection(), "Value", "Text", Model.DDL2),new { onchange = "DDL2Operation();" })
</div>
<script type="text/javascript">
$(function () {
var $ddl1 = $("select[name$=DDL1]");
$ddl1.select2();
var $ddl2 = $("select[name$=DDL2]");
$ddl2.select2();
}
</script >
下拉列表 1 更改事件调用 DDL1Operation() 方法,该方法设置下拉列表 2 的值
function DDL1Operation() {
$("select[name$=DDL2]").val('abc').trigger("change");
});
我想要实现的目标
当"下拉列表 2"手动更改时 -> DDL2Operation() 应调用
当"下拉列表 2"由于"下拉列表 1"更改而自动更改时 --> 不应调用 DDL2Operation()
我找不到很多关于"选择 2"下拉菜单的帖子。可以通过其他一些JQuery方法完成吗?
更新
@*City Dropdown*@
@Html.DropDownList(Model.chiefTownProp, new SelectList(GetchiefTown(), new { onchange = "PopualateFromCity();" })
@*Commune Dropdown*@
@Html.DropDownList(Model.communeProp, new SelectList(Getcommunes(), "Value", "Text", Model.communeId),new { onchange = "PopulateFromCommune();" })
及其功能
function PopualateFromCity() {
$("select[name$=communeId]").val('1').trigger("change.select2");
}
function PopulateFromCommune() { alert('PopulateFromCommune');}
"trigger("change.select2")"也无助于阻止 PopulateFromCommune 的 onchange 事件
Select2
不侦听下拉列表中的自定义事件,但您可以使用 jQuery 的事件命名空间通过触发 change.select2 事件将触发器范围限制为 Select2。您必须相应地编辑函数 DDL1Operation():
function DDL1Operation() {
$("select[name=DDL2]").val('abc').trigger('change.select2');
}
然后你需要用jquery绑定onclick处理程序:
$("select[name=DDL1]").change(function(){DDL1Operation()});
$("select[name=DDL2]").change(function(){DDL2Operation()});
并从 .NET 代码中的 <select>
元素中删除 onclick 属性:
@*City Dropdown*@
@Html.DropDownList(Model.chiefTownProp, new SelectList(GetchiefTown())
@*Commune Dropdown*@
@Html.DropDownList(Model.communeProp, new SelectList(Getcommunes(), "Value", "Text", Model.communeId))
相关文章:
- d3-js快速事件调用问题
- 使用按钮OnClick事件调用Javascript函数
- 了解在JavaScript中(在IE中)对某个事件调用了什么函数
- 如何使用onclick事件调用AngularJS控制器
- 无法从onclick事件调用JS函数
- 当多个 JS 事件调用同一个函数时,如何处理它们
- 为什么我从 JSLint 获得从事件调用的函数的“超出范围”
- 你能用onblur事件调用一个外部Javascript吗
- jquery mobile,从事件调用转换
- 如何使用C#为特定按钮事件调用JavaScript方法
- 如何在函数内部定义一个变量以供事件调用
- 如何从onClick事件调用对象函数
- 使用promise.then时,是否可以保留在单击事件调用堆栈中
- 如何断言间谍是使用jasmine通过点击事件调用的
- 使用AngularJS对超快速keyup和keydown事件调用函数
- 为同一标记中的两个不同事件调用两个javascript方法
- 事件调用方似乎无法正常工作
- 事件调用和范围问题
- 如何在 ng-repeat 中将变量值附加到事件调用
- j查询点击事件;调用特定函数(如果可用)