2

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

<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");
})
}; 

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

4

3 回答 3

5

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

现场演示

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

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

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

您可以在此处了解有关选择器的更多信息;

于 2013-01-21T15:43:45.463 回答
1

为什么它不起作用?

你从哪里了解到的#stateid.wpcf7-form-control?那是语法错误。

选择一个元素

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

添加 onchange 事件

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

});

获取价值

select.val();
于 2013-01-21T15:43:49.677 回答
0

如果您只希望在选择一个特定选项而不是其他选项时应用掩码,那么如果用户选择不等于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
        }
    });
于 2013-01-21T16:04:17.153 回答