Javascript 带模式窗口的引导下拉列表问题
当我从下拉列表中选择一个值时,它会填充一个模式窗口,但当我单击“X”关闭模式窗口,然后再次从下拉列表中选择相同的选项时,模型弹出窗口不会填充Javascript 带模式窗口的引导下拉列表问题,javascript,jquery,angularjs,twitter-bootstrap-3,Javascript,Jquery,Angularjs,Twitter Bootstrap 3,当我从下拉列表中选择一个值时,它会填充一个模式窗口,但当我单击“X”关闭模式窗口,然后再次从下拉列表中选择相同的选项时,模型弹出窗口不会填充 $(“#选择框”)。关于(“更改”,函数(){ var sOptionVal=$(this.val(); 如果(/modal/i.test(sOptionVal)){ 变量$selectedOption=$(sOptionVal); $selectedOption.modal('show'); } }); 查找:应用程序支持 苹果梨公司 冷酿公司 小丑
$(“#选择框”)。关于(“更改”,函数(){
var sOptionVal=$(this.val();
如果(/modal/i.test(sOptionVal)){
变量$selectedOption=$(sOptionVal);
$selectedOption.modal('show');
}
});代码>
查找:应用程序支持
苹果梨公司
冷酿公司
小丑野生公司。
×
苹果梨公司
利普苏姆酒店
×
冷酿公司
利普苏姆酒店
×
小丑野生公司。
利普苏姆酒店
您可以使用“更改”和“模糊”两个事件,所以如果选择的选项与上一个相同,则在“模糊”上会显示模式
$("#selectbox").on("change blur", function() {
var sOptionVal = $(this).val();
if (/modal/i.test(sOptionVal)) {
var $selectedOption = $(sOptionVal);
$selectedOption.modal('show');
}
});
在这种情况下,您需要在单击x
时重置选择。这是因为如果您尝试单击当前选中的同一选项
,则不会触发任何事件
这将确保当您重新选择任何选项时,它将显示模式
$("#selectbox").on("change", function() {
var sOptionVal = $(this).val();
if (/modal/i.test(sOptionVal)) {
var $selectedOption = $(sOptionVal);
$selectedOption.modal('show');
}
});
$("button.close").click(function(){
$("select#selectbox").val($("select#selectbox option:first").val());
});
小提琴:试试这个。
当引导模式关闭时,所选选项将被删除,并再次附加一个选项。你可以使用这个技巧
希望对你有帮助
$(“#选择框”)。关于(“更改”,函数(){
var sOptionVal=$(this.val();
如果(/modal/i.test(sOptionVal)){
变量$selectedOption=$(sOptionVal);
$selectedOption.modal('show');
}
});
$('.modal').on('hidden.bs.modal',函数(e){
var getValueOnClose=$(“#selectbox:selected”).text();
$(“#selectbox:selected”).remove();
$(“#selectbox:selected”).text(getValueOnClose);
$(“#选择框”).append(“”+getValueOnClose+“”);
$(“#选择框选项:第一”).hide();
});代码>
查找:应用程序支持
苹果梨公司
冷酿公司
小丑野生公司。
×
苹果梨公司
利普苏姆酒店
×
冷酿公司
利普苏姆酒店
×
小丑野生公司。
利普苏姆酒店
如果选择与当前所选相同的选项,则不会触发任何事件。您需要选择另一个选项。@TechBreak还有另一个解决方案,@RickBronger行为不正确。它在选择单击时被激发。甚至我也没有点击选项,只是在选择之外点击。@Bhairav我也看到了你对其他答案的评论。对于要触发的下拉列表change
事件,您需要更改下拉列表的值,即使您再次选择相同的值,也不会触发更改。您还说不要使用blur
和reset
下拉列表。如果你能告诉我这个模块的目的可能是我们可以想出不同的方法,谢谢你的回复,但我不想重设“选择”选项。我不想使用任何模糊事件,也不能将值重设为“第一个选项”。@Sam blur event不是解决此问题的正确方法,因此我们可以使用:selected来拾取文本并设置为“像selected一样渲染”。