0

すべての州の携帯電話用マスク:(99)9999-9999

サンパウロ(ブラジル)の携帯電話用マスク:(99)99999-9999

他の状態よりも1桁多くなっています。私は<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>
4

1 に答える 1

0

電話番号に2つのフィールドを使用するのはなぜですか?状態が変わったらマスクを変更/追加するだけです。javascriptで; これは、phpのようなサーバー側の言語では実行できません/実行しないでください。

何かのようなもの:

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

編集:を使用するには、少なくともjQuery1.7が必要であることに注意してくださいon()

于 2013-02-20T02:01:52.857 に答える