none
script de formatação não funciona RRS feed

  • Pergunta

  • Tenho na view create vários campos, no campo telefone e celular estou usando o maskeditinput para formatar os dados e nesse caso o formato é (99) 9999-9999 no primeiro textbox funciona perfeitamente, mais no segundo não, no script já mudei até o nome para ver se o erro era por isso, mais não adiantou, logo abaixo tenho um campo dataadmissão onde estou usando o datepicker e funciona perfeitamente, mais logo abaixo tenho outro campo de data datanascimento e novamente uso o maskeditinput e novamente a máscara não aparece.

    <script language="javascript" type="text/javascript">
      $(document).ready(function($){
      $("#data").mask("99/99/9999");
      $("#fone").mask("(99) 9999-9999");
      $("#cel").mask("(99) 9999-9999");
      $("#cep").mask("99999-999");
      $("#ssn").mask("999-99-9999");
      });
    </script>
    
    Alguém já passou por isso ?
    Junior
    quarta-feira, 4 de maio de 2011 13:56

Respostas

Todas as Respostas

  • Copiei o teu mesmo codigo e funcionou show, shegue o codigo:
    <%= Html.TextBox("data")%><br />
    <%= Html.TextBox("fone")%><br />
    <%= Html.TextBox("cel")%><br />
    <%= Html.TextBox("cep")%><br />
    <%= Html.TextBox("ssn")%><br />
    <script language="javascript" type="text/javascript">
     $(document).ready(function ($)
     {
      $("#data").mask("99/99/9999");
      $("#fone").mask("(99) 9999-9999");
      $("#cel").mask("(99) 9999-9999");
      $("#cep").mask("99999-999");
      $("#ssn").mask("999-99-9999");
     });
    </script>
    
    Considerações:
    Provavelmente o modo como vc importou o jQueryMaskedInput está com problema, cola o codigo ai como você está referenciado os scripts JS na sua masterpage, ou pagina especifica.
    Para evitar problemas com roteamento, eu faço da seguinte forma:
    <script src="<%= Url.Content("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>
    <script src="<%= Url.Content("~/Scripts/jQueryMaskedInput.js") %>" type="text/javascript"></script>

    Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://albertomonteiro.net/


    quarta-feira, 4 de maio de 2011 14:45
  • Porque nao usar Data Annotation?

     

    exemplo:

            [Required(ErrorMessage = "Data deve ser informada")]
            [DataType(DataType.Date, ErrorMessage = "Data inválida")]
            [RegularExpression("^([0-9]{1,2})/([0-9]{1,2})/([0-9]{4,4})$", ErrorMessage = "Formato de data invalido")]
            [DisplayName("Data")]       
            public string Data { get;set;}

    quarta-feira, 4 de maio de 2011 14:52
  • Alberto quando coloquei seu link deu erro de script o meu esta assim

    <

     

    script src="@Url.Content("~/Scripts/jquery.maskedinput-1.3.js")" type="text/javascript"></script

    >


    Junior
    quarta-feira, 4 de maio de 2011 19:51
  • na view tenho esse codigo e o primeiro funciona e o segundo não

    <div class="editor-field">
          @Html.EditorFor(model => model.fone, new { @class = "fone" })
          @Html.ValidationMessageFor(model => model.fone)
        </div>
    
        <div class="editor-label">
          @Html.LabelFor(model => model.Celular)
        </div>
        <div class="editor-field">
          @Html.EditorFor(model => model.Celular, new { @class = "cel" })
          @Html.ValidationMessageFor(model => model.Celular)
        </div>
    

     

    o class = "cel" não funciona

     


    Junior
    quarta-feira, 4 de maio de 2011 19:55
  • No jQuery, você usa o # quando faz refencia ao ID do elemento, ja o "."(ponto) quando é referente a classe.
    No script que você colou, vc usou #, logo faz referencia aos IDs
    A não ser que você realmente tenha uma classe CSS para diferenciar Telefone de Celular, não vejo a necessidade do new { @class = "cel"}, e das outras atribuições de classe css.
    Para a mascara funcionar no campo celular, use:
    $("#Celular").mask("(99) 9999-9999");
    
    Tenta colocar esse script no fim do seu html, antes de fechar a tag do contentplaceholder:
    <script language="javascript" type="text/javascript">
     $(document).ready(function ($)
     {
     $("#data").mask("99/99/9999");
     $("#fone").mask("(99) 9999-9999");
     $("#Celular").mask("(99) 9999-9999");
     $("#cep").mask("99999-999");
     $("#ssn").mask("999-99-9999");
     });
    </script>
    
    
     Lembrando que está usando o ID do elemento nesse codigo.
    Partindo do pressuposto que o jquery e o jquerymasked estão carregados na pagina, não vejo por que não está funcionando.
    Pode haver um erro de JS antes de aplicar as mascaras que faz com o que o JS pare de execultar.
    Se puder, cola o HTML gerado dessa pagina aqui :)

    Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://albertomonteiro.net/


    quarta-feira, 4 de maio de 2011 21:02
  • Conseguiu resolver o problema?

    Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://albertomonteiro.net/

    sexta-feira, 6 de maio de 2011 17:44
  • Alberto ainda está do mesmo jeito, colei o sript que vc me mandou e o telefone e celular resolveu mais no penultimo campo tenho a data de admissão e essa não pega a máscara de jeito nenhum.


    Junior
    sexta-feira, 6 de maio de 2011 18:14
  • Cola o html da pagina gerado aqui.

    Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://albertomonteiro.net/

    sexta-feira, 6 de maio de 2011 18:54
  • <div class="editor-label">
    <input class="SYN_LNN" type="text" value="472" /><input id="syn_ctrl472" class="SYN_BCH" type="text" value="-" />
                <label for="Data_Nascimento">Data_Nascimento</label>
    <input class="SYN_LNN" type="text" value="473" /><input id="syn_ctrl473" class="SYN_BCH" type="text" value="-" />
            </div>
    <input class="SYN_LNN" type="text" value="474" /><input id="syn_ctrl474" class="SYN_BCH" type="text" value="-" />
            <div class="editor-field">
    <input class="SYN_LNN" type="text" value="475" /><input id="syn_ctrl475" class="SYN_BCH" type="text" value="-" />
                <input class="text-box single-line" id="Data_Nascimento" name="Data_Nascimento" type="text" value="" />
    <input class="SYN_LNN" type="text" value="476" /><input id="syn_ctrl476" class="SYN_BCH" type="text" value="-" />
                <span class="field-validation-valid" data-valmsg-for="Data_Nascimento" data-valmsg-replace="true"></span>
    <input class="SYN_LNN" type="text" value="477" /><input id="syn_ctrl477" class="SYN_BCH" type="text" value="-" />
            </div>

    Junior
    sexta-feira, 6 de maio de 2011 19:01
  • Para a data vc tem que usar assim:

    $("#Data_Nascimento").mask("99/99/9999")

    E para o ssn

    $(".SYN_BCH").mask("999-99-9999")


    Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://albertomonteiro.net/

    • Marcado como Resposta Junior_luiz sexta-feira, 6 de maio de 2011 19:28
    sexta-feira, 6 de maio de 2011 19:20