我正在使用" Multiple Select"来自jquery-chosen(http://harvesthq.github.io/chosen/)。我有一个函数,只要有这个选择的更改(例如,选择了一个新选项或删除了一个选项),就必须调用该函数:
function getMultiselectVal(){
var value = $('.chosen-choices').text();
alert(value);
}
我的firebug的html代码如下所示:
<div id="Q2_chosen" class="chosen-container chosen-container-multi chosen-with-drop chosen-container-active" style="width: 350px;" title="">
<ul class="chosen-choices">
<li class="search-choice"></li>
<li class="search-field" onchange="getMultiselectVal();"></li>
</ul>
<div class="chosen-drop"></div>
</div>
添加项目时效果很好。我点击下拉列表,选择我要添加的值(例如&#34;英国&#34;),添加值,现在我的函数被调用。
但是在移除项目时这不起作用。如果我点击&#34; x&#34;删除该项目,我的函数立即被调用(这是坏的),该项目保留在列表中,直到我的功能完成。
实施例: 该列表为空。我现在添加&#34;英国&#34;。我的功能警告&#34; UnitedKingdom&#34;。我现在添加&#34;德国&#34;,我的功能提醒&#34; UnitedKingdomGermany&#34;。我现在删除了UnitedKingdom,我的功能警报&#34; UnitedKingdomGermany&#34; (因为该项目仅在该功能之后被删除。)
所以在我看来: a)onChange过早被调用。 b)这是同步的,而不是异步的。如果它是异步的,我的功能将不会停止&#34;删除过程&#34;。