【问题标题】:How to only run a JQuery function if a certain field is chosen in a drop down如果在下拉列表中选择了某个字段,如何仅运行 JQuery 函数
【发布时间】:2013-01-04 17:09:28
【问题描述】:

好的,我有一个非常通用的状态下拉列表。

<select class="wpcf7-form-control  wpcf7-select wpcf7-validates-as-required required" id="stateid" name="State"><option value="">---</option>
<option value="AL">AL</option>
<option value="AK">AK</option>
<option value="AZ">AZ</option>
<option value="AR">AR</option>
<option value="CA">CA</option>
<option value="CO">CO</option>
<option value="CT">CT</option>
<option value="DE">DE</option>
<option value="DC">DC</option>
<option value="FL">FL</option>
<option value="GA">GA</option>
<option value="HI">HI</option>
<option value="ID">ID</option>
<option value="IL">IL</option>
<option value="IN">IN</option>
<option value="IA">IA</option>
<option value="KS">KS</option>
<option value="KY">KY</option>
<option value="LA">LA</option>
<option value="ME">ME</option>
<option value="MD">MD</option>
<option value="MA">MA</option>
<option value="MI">MI</option>
<option value="MN">MN</option>
<option value="MS">MS</option>
<option value="MO">MO</option>
<option value="MT">MT</option>
<option value="NE">NE</option>
<option value="NV">NV</option>
<option value="NH">NH</option>
<option value="NJ">NJ</option>
<option value="NM">NM</option>
<option value="NY">NY</option>
<option value="NC">NC</option>
<option value="ND">ND</option>
<option value="OH">OH</option>
<option value="OK">OK</option>
<option value="OR">OR</option>
<option value="PA">PA</option>
<option value="RI">RI</option>
<option value="SC">SC</option>
<option value="SD">SD</option>
<option value="TN">TN</option>
<option value="TX">TX</option>
<option value="UT">UT</option>
<option value="VT">VT</option>
<option value="VA">VA</option>
<option value="WA">WA</option>
<option value="WV">WV</option>
<option value="WI">WI</option>
<option value="WY">WY</option>

我想要做的是仅在从下拉列表中选择某个值时运行 JQuery 脚本。

这是我到目前为止的代码,但它不起作用

if(#stateid.wpcf7-form-control=='AL') {
jQuery(function($){
$("input[name=phone]").mask("(999) 999-9999? ext.99999");
})
}; 

有人愿意帮忙看看为什么它不起作用吗?

【问题讨论】:

    标签: javascript jquery drop-down-menu web conditional


    【解决方案1】:

    如果您只希望在选择一个特定选项而不是其他选项时应用掩码,那么如果用户随后选择不等于AL 的选项,您可能还需要一种清除掩码的方法。

    您可以使用触发 JavaScript .blur() 事件的函数来执行是否设置或清除输入掩码的逻辑。

    $(function() {
        $('#stateid').on('blur', function() { // hook in your custom function onto the element with id = stateid
            if (this.options[this.selectedIndex].value === 'AL') { // check which option is selected
                // set mask
            } else {
                // clear mask
            }
        });
    

    【讨论】:

      【解决方案2】:

      您需要将条件放入事件处理程序中,而不是将事件处理程序放入条件中。

      Live Demo

      jQuery(function($){    
         $('#stateid').click(function(){
              if($(this).val() =='AL') {
                 $("input[name=phone]").mask("(999) 999-9999? ext.99999");
              }  
          });
      }); 
      

      这是click 事件处理程序的语法。

      $("selector").click(function() {
         //You code here, your condition 
      });
      

      你可以了解更多关于选择器here;

      【讨论】:

      • 看OP的代码,不解释他是看不懂的。
      • 感谢@bažmegakapa,已添加。
      【解决方案3】:

      为什么它不起作用?

      您从哪里得知#stateid.wpcf7-form-control?那是语法错误。

      选择一个元素

      var select = $("#stateid.wpcf7-form-control");
      

      添加 onchange 事件

      select.on("change", function(){
      
      });
      

      获取价值

      select.val();
      

      【讨论】:

      • +1 试图解释,而不仅仅是提供复制粘贴解决方案
      猜你喜欢
      • 2013-02-16
      • 2014-06-17
      • 2017-10-17
      • 1970-01-01
      • 2019-12-04
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多