如果<option value =“SP”> </option>,请更改jQuery Mask

时间:2013-02-20 01:54:04

标签: javascript jquery hide option

所有州的手机面罩:(99)9999-9999

圣保罗手机面罩(巴西):( 99)99999-9999

它比其他州多一个数字。我列出了所有州的<option value="STATE_ACRONYM">,圣保罗是“SP”

我需要什么

当选项值=“SP”时,输出特定掩码

    <script>
jQuery(function($){
       $("#celular").mask("(99) 9999-9999");
       $("#celular_sp").mask("(99) 99999-9999");
});
</script>

        <label for="celular">Telefone Celular</label>
             <span class="w">
                <input tabindex="1" class="input" id="celular" type="text" />
        </span>

         <label for="estado">Estado</label>
        <select id="estado" style="width:300px;">
            <option value="">Selecione</option>
            <option value="AC">Acre</option>
            <option value="AL">Alagoas</option>
            <option value="AP">Amap&aacute;</option>
            <option value="AM">Amazonas</option>
            <option value="BA">Bahia</option>
            <option value="CE">Cear&aacute;</option>
            <option value="DF">Distrito Federal</option>
            <option value="ES">Esp&iacute;rito Santo</option>
            <option value="GO">Goi&aacute;s</option>
            <option value="MA">Maranh&atilde;o</option>
            <option value="MT">Mato Grosso</option>
            <option value="MS">Mato Grosso do Sul</option>
            <option value="MG">Minas Gerais</option>
            <option value="PA">Par&aacute;</option>
            <option value="PB">Para&iacute;ba</option>
            <option value="PR">Paran&aacute;</option>
            <option value="PE">Pernambuco</option>
            <option value="PI">Piau&iacute;</option>
            <option value="RJ">Rio de Janeiro</option>
            <option value="RN">Rio Grande do Norte</option>
            <option value="RS">Rio Grande do Sul</option>
            <option value="RO">Rond&ocirc;nia</option>
            <option value="RR">Roraima</option>
            <option value="SC">Santa Catarina</option>
            <option value="SP">S&atilde;o Paulo</option>
            <option value="SE">Sergipe</option>
            <option value="TO">Tocantins</option>
        </select>

可能的解决方案

如果是<option value="SP">,那么div.celular_sp{style="display:block !important}(在这里编写了编程语言,因为我不知道PHP)

        <label for="celular">Telefone Celular</label>
             <span class="w">
                <input tabindex="1" class="input" id="celular" type="text" />
        </span>

        <label for="celular_sp" style="display:none">Telefone Celular - São Paulo</label>
             <span class="w">
                <input tabindex="1" class="input" id="celular_sp" type="text" />
         </span>

1 个答案:

答案 0 :(得分:0)

为什么要使用两个字段作为电话号码?只需在状态更改时更改/添加掩码。在javascript中;这不能/不应该用像php这样的服务器端语言来完成。

类似的东西:

$("#estado").on("change", function() {
  if ($(this).val() == 'SP') {
    $("#celular").mask("(99) 99999-9999");
  } else {
    $("#celular").mask("(99) 9999-9999");
  }
});

编辑:请注意,您至少需要使用jQuery 1.7才能使用on()