【问题标题】:Trigger function when already selected option selected选择已选选项时触发功能
【发布时间】:2019-02-13 18:33:25
【问题描述】:

当已经选择 OPTION 从下拉列表中选择时,我想调用一个函数。

$("#dropdown1").on("change",function(){
  alert($(this).val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="dropdown1">
  <option value="one"> One </option>
  <option value="two"> Two </option>
  <option value="three"> Three </option>  
</select>

在上面的代码中,当我选择选项 ONE 时,ALERT 会起作用。 因此,现在选择了选项 ONE。但我希望当我再次选择选项 ONE 时,函数应该再次调用。

【问题讨论】:

  • 你可以考虑click而不是change....因为它在逻辑上不正确,当已经选择了一个,你将再次选择它。
  • 如果您可以将较早选择的值存储到变量中并检查新选择的值是否与现有值匹配,如果是,则继续执行警报会更容易。
  • stackoverflow.com/questions/647282/… 的可能副本,其中可以使用 onclick 方法复制所需的行为。
  • @SudhirOjha 谢谢伙计。从那里找到解决方案。 Solution

标签: javascript jquery


【解决方案1】:

您的事件发生了变化,如果您再次选择相同的值,则没有变化,因此不会触发警报。引入一个隐藏的虚拟选项。使用选定的值进行您想要执行的所有计算/操作,然后将值更改为虚拟选项元素

$("#dropdown1").on("change",function(){
  alert($(this).val());
  $(this).val("");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="dropdown1">
 <option value="" disabled  style="display:none;">Select</option>
  <option value="one" selected> One </option>
  <option value="two"> Two </option>
  <option value="three"> Three </option>  
</select>

【讨论】:

  • 选择值后选择对话框为空。
  • 谢谢@AshayMandwarya。有用。我还有一个解决方案..SOLUTION...
  • 其中一个选项在第一次点击后消失
  • 故意隐藏该选项
  • 它不会消失,在更改事件和警报之后再次将值赋予默认选项,以便下次如果您单击相同的选项更改事件触发
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多