Usuário com melhor resposta
script de formatação não funciona

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.
Alguém já passou por isso ?<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>
Junior
Respostas
-
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
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>
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/ -
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;} -
-
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 -
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 IDsA 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/ -
Conseguiu resolver o problema?
Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
Twitter: Me siga!!
Blog:http://albertomonteiro.net/ -
-
Cola o html da pagina gerado aqui.
Contato: alberto.monteiro@live.com - Se ajudei, marca como útil.
Twitter: Me siga!!
Blog:http://albertomonteiro.net/ -
<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 -
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