Ir para conteúdo
Fórum Script Brasil

jgd

Membros
  • Total de itens

    69
  • Registro em

  • Última visita

Tudo que jgd postou

  1. Jonathan... Deposi de mexer banstante descobri que o problema era que eu estava bloquenado as demais teclas... Veja linha abaixo (corrigida) em relação a linha do código acima ( formatarMoeda(fld, milSep, decSep, e) ) correspondente if (whichCode == 13 || whichCode == 8 || whichCode == 0) return true; Abraço
  2. Pessoal, Preciso de ajuda na função abaixo. Trata-se de formatação moeda no campo conforme for efetuada a digitação. A função é composta de duas partes. OnKeyPress para incluir valores... e onKeyDown para retirar valores... No I.E roda legal... O problema é com relação ao FireFox que no evento onKeyDown Não apaga e não formata o valor. Agradeço qualquer ajuda. Chamada das funções: R$<input type="text" name="obrigValor" title="Valor" onKeyPress="return(formatarMoeda(this,'.',',',event))" onKeyDown="apaga(this, ',' , '.' , event)" size=10 maxlength=10 value="" style="text-align: right"> Função OnKeyPress - Insere e formata: function formatarMoeda(fld, milSep, decSep, e) { var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; // Enter key = String.fromCharCode(whichCode); // recebe o valor da chave vinda da chave do código if (strCheck.indexOf(key) == -1) {return false;} len = fld.value.length; //alert(len); if (len == 14) return false; for(i = 0; i < len; i++) if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); aux += key; len = aux.length; if (len == 0) fld.value = ''; if (len == 1) fld.value = '0'+ decSep + aux; // if (len == 2) fld.value = '0'+ decSep + aux; if (len > 1) { inteiro = aux.slice(0,aux.length -2 ) parcela = aux.slice(aux.length -2,aux.length ) aux2 = ''; for (j = inteiro.length - 1, i = 0; j >= 0; i++, j--) { if (i % 3 == 0 && i != 0) { aux2 = inteiro.charAt(j) + milSep + aux2; }else {aux2 = inteiro.charAt(j) + aux2;} } fld.value = aux2 + decSep + parcela; } return false; } //// Função onKeyDown - Para apagar e re-formatar function apaga(fld, decSep, milSep , e) { var strCheck = '0123456789'; var whichCode = (window.Event) ? e.which : event.keyCode; alert(whichCode); if(whichCode == 8) { len = fld.value.length; for(i = 0; i < len; i++) if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; aux = ''; for(; i < len - 1; i++) if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); len = aux.length; if (len == 0) fld.value = '0'; if (len == 1) fld.value = '0'+ decSep + aux; // if (len == 2) fld.value = '0'+ decSep + aux; if (len > 2) { inteiro = aux.slice(0,aux.length -2 ) parcela = aux.slice(aux.length -2,aux.length ) aux2 = ''; for (j = inteiro.length - 1, i = 0; j >= 0; i++, j--) { if (i % 3 == 0 && i != 0) { aux2 = inteiro.charAt(j) + milSep + aux2; }else {aux2 = inteiro.charAt(j) + aux2;} } fld.value = aux2 + decSep + parcela + '0'; } } } // End --> Valeu JGD
  3. Pessoal, Seguinte, uso a função abaixo para formatar campo moeda em reais. A medida que o usuário vai digitando o valor... A virgura e o ponto ( quando há) vai sendo inserida automaticamente. Daí o resultado fica assim: 123,00 Agora estou precisando trabalhar com 3 casas decimais. Ou seja : 123,000. Agraço qualuer ajuda. Chamos assim: <input name="nome" value="0,00" onKeyPress="return(formatarMoeda(this,'.',',',event))" onKeyDown="apaga(this, ',' , '.' , event)"> function formatarMoeda(fld, milSep, decSep, e) { var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; // Enter key = String.fromCharCode(whichCode); // recebe o valor da chave vinda da chave do código if (strCheck.indexOf(key) == -1) {return false;} len = fld.value.length; if (len == 9) return false; for(i = 0; i < len; i++) if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); aux += key; len = aux.length; if (len == 0) fld.value = ''; if (len == 1) fld.value = '0'+ decSep + aux; // if (len == 2) fld.value = '0'+ decSep + aux; if (len > 1) { inteiro = aux.slice(0,aux.length -2 ) parcela = aux.slice(aux.length -2,aux.length ) aux2 = ''; for (j = inteiro.length - 1, i = 0; j >= 0; i++, j--) { if (i % 3 == 0 && i != 0) { aux2 = inteiro.charAt(j) + milSep + aux2; }else {aux2 = inteiro.charAt(j) + aux2;} } fld.value = aux2 + decSep + parcela; } return false; } function apaga(fld, decSep, milSep , event) { var strCheck = '0123456789'; var whichCode = (window.Event) ? event.which : event.keyCode; if(whichCode == 8) { len = fld.value.length; for(i = 0; i < len; i++) if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; aux = ''; for(; i < len - 1; i++) if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); len = aux.length; if (len == 0) fld.value = '0'; if (len == 1) fld.value = '0'+ decSep + aux; // if (len == 2) fld.value = '0'+ decSep + aux; if (len > 2) { inteiro = aux.slice(0,aux.length -2 ) parcela = aux.slice(aux.length -2,aux.length ) aux2 = ''; for (j = inteiro.length - 1, i = 0; j >= 0; i++, j--) { if (i % 3 == 0 && i != 0) { aux2 = inteiro.charAt(j) + milSep + aux2; }else {aux2 = inteiro.charAt(j) + aux2;} } fld.value = aux2 + decSep + parcela + '0'; } } } // End --> //-->
  4. Andreia... Putz Meu! Fui implementar a sua dica no projeto... Apareceu outro problema... a função: function validacampos() do fecosão té pegando... Porque? Porque tem mais de um form na minha página: Preciso listar todos os campos independente o numeros de forms. Mais a função : function validacampos() acima.. Se tiver mais de um form... Ela deixa passar. Alguma outra dica ??? JGD
  5. Andreia, O que você mostrou é uma alterantiva... Contudo. Na validação dos campos via javaScript... E mostra todos os campos. Os ocultos e os visíveis.... Se eu fizer a validação pelo asp... Quando volto (faltou algum campo)... a pagina só mostra o checkbox checado... Os campos não.. Igual meu 2ª problemas. teria alaguma solução pra não perder desaparecer os campos? Veja código sugerido com as desmais particularidade: <% 'Teste Andrea Id = "Vai" %> <HTML> <HEAD> <TITLE>TesteAdreia</TITLE> <script> function validacampos(){ var campo = document.forms[0]; var i=0; var erro =""; //var nro1 =""; //var nro2 =""; for (i=0; i< campo.elements.length; i++){ var nomecampo = campo.elements[i].name; if (nomecampo.substring(5,0) == 'obrig'){ //alert(nomecampo); var valida = campo.elements[i].value; if (nomecampo == "obrigCheca" && campo.elements[i].id=="1"){ var nro1 = campo.elements[i].checked; } if(nomecampo == "obrigCheca" && campo.elements[i].id=="2"){ var nro2 = campo.elements[i].checked; if (nro1==false && nro2==false){ erro = erro + "Informe sobre a opção.\n" } } if (valida == ''){ erro = erro + "Preencha o campo "+ campo.elements[i].title +" corretamente. \n" //alert('o campo ' + campo.elements[i].title + ' deve ser preenchido!'); //return false; } } } if(erro != ""){ alert("Erros:\n"+erro); return false; }else{ return true; } } //--> </script> </head> <html> <body> <br> <form name="frm" action="proxima.asp" onsubmit="return validacampos();"> FRM1:<input type="checkbox" name="chk_form1" onclick="frm2.style.display='none'; frm1.style.display='block'"> FRM2:<input type="checkbox" name="chk_form2" onclick="frm2.style.display='block'; frm1.style.display='none'"> <br> <div id="frm1" style="display:none";>Form 1 <br> <input type="text" name="obrigCampo1_frm1" title="Campo 1 Form1"><br> <input type="text" name="obrigCampo2_frm1" title="Campo 2 Form1"><br> <input type="text" name="obrigCampo3_frm1" title="Campo 3 Form1"> </div> <br> <div id="frm2" style="display:none";>Form 2 <br> <input type="text" name="obrigCampo1_frm2" title="Campo 1 Form2"><br> <input type="text" name="obrigCampo2_frm2" title="Campo 2 Form2"><br> <input type="text" name="obrigCampo3_frm2" title="Campo 3 Form2"> </div> <br> <input type="submit" value="Validar"> <input type="hidden" name="acao" value="22"> <input type="hidden" name="G" value="<%=Id%>"> </form> </BODY> </HTML> Resultado 1: <% Response.Write "Form1 <br>" Response.Write "1 " & Request("obrigCampo1_frm1") & "<br>" Response.Write "2 " & Request("obrigCampo2_frm1") & "<br>" Response.Write "3 " & Request("obrigCampo3_frm1") & "<br><br>" Response.Write "Form2 <br>" Response.Write "1 " & Request("obrigCampo1_frm2") & "<br>" Response.Write "2 " & Request("obrigCampo2_frm2") & "<br>" Response.Write "3 " & Request("obrigCampo3_frm2") & "<br>" Response.Write "hidden " & Request("acao") & "<br>" Response.Write "hidden " & Request("G") & "<br>" %> Tratamento pelo ASP. Arquivo: TesteAndeia 2.asp <% 'Teste Andrea Id = "Vai" %> <HTML> <HEAD> <TITLE>TesteAdreia 2 </TITLE> </head> <html> <body> <br> <form name="frm" action="proxima2.asp"> FRM1:<input type="checkbox" name="chk_form1" onclick="frm2.style.display='none'; frm1.style.display='block'"> FRM2:<input type="checkbox" name="chk_form2" onclick="frm2.style.display='block'; frm1.style.display='none'"> <br> <div id="frm1" style="display:none";>Form 1 <br> <input type="text" name="obrigCampo1_frm1" title="Campo 1 Form1"><br> <input type="text" name="obrigCampo2_frm1" title="Campo 2 Form1"><br> <input type="text" name="obrigCampo3_frm1" title="Campo 3 Form1"> </div> <br> <div id="frm2" style="display:none";>Form 2 <br> <input type="text" name="obrigCampo1_frm2" title="Campo 1 Form2"><br> <input type="text" name="obrigCampo2_frm2" title="Campo 2 Form2"><br> <input type="text" name="obrigCampo3_frm2" title="Campo 3 Form2"> </div> <br> <input type="submit" value="Validar"> <input type="hidden" name="acao" value="22"> <input type="hidden" name="G" value="<%=Id%>"> </form> </BODY> </HTML> Resultado 2 : Arquivo: proximo2.asp <% Sub Alerta(msg) response.write "<script>" response.write "alert('"&msg&"')" Response.Write ";history.go(-1)" response.write "</script>" End Sub if Request("obrigCampo1_frm1") ="" or Request("obrigCampo2_frm1") ="" or Request("obrigCampo3_frm1")="" then Alerta("Falta campo From 1") end if if Request("obrigCampo1_frm2") ="" or Request("obrigCampo2_frm2") ="" or Request("obrigCampo3_frm2")="" then Alerta("Falta campo Form 2") end if Response.Write "Form1 <br>" Response.Write "1 " & Request("obrigCampo1_frm1") & "<br>" Response.Write "2 " & Request("obrigCampo2_frm1") & "<br>" Response.Write "3 " & Request("obrigCampo3_frm1") & "<br><br>" Response.Write "Form2 <br>" Response.Write "1 " & Request("obrigCampo1_frm2") & "<br>" Response.Write "2 " & Request("obrigCampo2_frm2") & "<br>" Response.Write "3 " & Request("obrigCampo3_frm2") & "<br>" Response.Write "hidden " & Request("acao") & "<br>" Response.Write "hidden " & Request("G") & "<br>" %>
  6. Isso mesmo Andreai... Se clica em um aparece um se clica no outro aparace outro. Então? Mas se coloco o form fora da Div... o Fire Fox não pega ( nem função de validação nem hiddens.. <form name="form".....> Checkboxs.... <div id="mostra"></div> <input type="hidden"....> </form> JGD E... Se separo em mais de um form... Ou seja: <form name="form1" method="post" action="artigos.asp?acao=" onSubmit=onSubmit='return validacampos();'> Registrar Opinião: <input type="checkbox" name="sel" id="1" value="1" onclick="mostraOpcao(form1.sel,0,1);"> Registrar Voto: <input type="checkbox" name="sel2" id="2" value="2" onclick="mostraOpcao(form1.sel2,0,2);"> </form> E coloco nova referencia do form no código a ser carregado no innetHTML... ver linha: innetHTML ="/*<form name='form3' method='post' action='artigos.asp' onSubmit='return validacampos();'>*/..... Aí os hidden não vão enviados no submit. JGD
  7. Olá Pessoal, preciso novamente de ajuda... Agora com relação a exibição e execução de forms que são carregados conforme a escolha do usuários via innerHTML. A operação é a seguinte: O usuário escolhe uma das opções. Conforme a opção selecionada o form é carregado em uma Div.. Para isso de início tenho um form com dois checkbox uma div e alguns campos hidden conforme abaixo: <form name="form3" method="post" action="artigos.asp?acao=" onSubmit='return form_simples(this)'> Registrar Opinião: <input type="checkbox" name="sel" id="1" value="1" onclick="mostraOpcao(form3.sel,0,1);"> Registrar Voto: <input type="checkbox" name="sel2" id="2" value="2" onclick="mostraOpcao(form3.sel2,0,2);"> <div id="mostra"> </div> <input type="hidden" name="acao" value=""> <input type="hidden" name="acao2" value="22"> <input type="hidden" name="G" value="<%=zIdG%>"> </form> Então para evitar que o usuário escolha mais de uma opção e também traga o formulários correspondente chamo a função mostraOpcao no onClick que carrega o conteúdo da opção na div = mostra... Aí estou tendo dois problemas: 1) Fire Fox: Não estou conseguindo validar os campos. Contudo se coloco a referencia do form junto ao código do innerHTML a ser carregado (ver abaixo código comentado) até consigo validar os campos... mais também só submeto os campos da div... sem os hidden que ficam fora e abaixo da div os quais serão utilizados nas próximas ações e que os hiddens não vão. Dá erro no asp. 2) I.E e Fire Fox: Se faço a validação pelo servidor (asp)... Quando não passa e a página é recarregada ( via history.go(-1) ) a checkbox fica selecionada mais a Div fica vazia. Agradeço qualquer ajuda. Função: <script> var maxi=1; var P1; var P2; var PX; var contador=new Array(0,0); function mostraOpcao(valor,grupo,valor2){ if (valor.checked==true){ //alert(valor2); contador[grupo]++; if (valor2=="1"){ document.getElementById("mostra").innerHTML = "/*<form name='form3' method='post' action='artigos.asp' onSubmit='return validacampos();'>*/<input type='text' maxlength='15' name='obrigNome' title='Nome' value=''><br><input type='text' size='1' maxlength='2' name='obrigUf' title='UF' value=''><br><input type='text' size='39' name='obrigEmail' title='Email' value=''><br><textarea name='obrigComentario' cols='30' title='Comentário' rows='5'></textarea><input type='hidden' name='tipoacao' value='come'><input type='image' src='btEnviar.gif' alt='Enviar' id='image'1 name='image'1>"; } if (valor2=="2"){ document.getElementById("mostra").innerHTML = "/*<form name='form3' method='post' action='artigos.asp' onSubmit='return validacampos();'>*/<input type='radio' name='obrigVoto' title='Voto' value='0'>Ruim&nbsp;<input type='radio' name='obrigVoto' title='Voto' value='1' id='radio'>Bom<br><input type='hidden' name='tipoacao' value='voto'><input type='image' src='btRegVoto.gif' alt='Registrar Voto' id='image'1 name='image'1>"; } if (contador[grupo]>maxi) { alert('Não se pode escolher mais de '+maxi+' campos ao mesmo tempo.'); valor.checked=false; if (valor2=="2"){ document.getElementById("mostra").innerHTML = "/*<form name='form3' method='post' action='artigos.asp' onSubmit='return validacampos();'>*/<input type='radio' name='obrigVoto' title='Voto' value='0'>Ruim&nbsp;<input type='radio' name='obrigVoto' title='Voto' value='1' id='radio'>Bom<br><input type='hidden' name='tipoacao' value='voto'><input type='image' src='btRegVoto.gif' alt='Registrar Voto' id='image'1 name='image'1>"; } if (valor2=="1"){ document.getElementById("mostra").innerHTML = "/*<form name='form3' method='post' action='artigos.asp' onSubmit='return validacampos();'>*/<input type='text' maxlength='15' name='obrigNome' title='Nome' value=''><br><input type='text' size='1' maxlength='2' name='obrigUf' title='UF' value=''><br><input type='text' size='39' name='obrigEmail' title='Email' value=''><br><textarea name='obrigComentario' cols='30' title='Comentário' rows='5'></textarea><input type='hidden' name='tipoacao' value='come'><input type='image' src='btEnviar.gif' alt='Enviar' id='image'1 name='image'1>"; } contador[grupo]--; } }else { } if (contador[grupo]==0){ document.getElementById("mostra").innerHTML = ""; } }</script>
  8. Olá Pessoal, Gostaria de uma ajuda para fazer função javascript funcionar no I.E. e no FireFox. No I.E roda certinho... Mais no Fire Fox não. Como manjo pouco do JavaScript.. Peço ajuda. Trata-se de uma função genérica que percorre todos os campos indicados e aí saio testando. Nos campos do form uso a tag “alt” como referência para selecionar os campos que quero validar Chamo a função assim: <form name="form2" method="post" action="paginaXis.asp" onSubmit='return form_simples(this)'> Então lá no arquivo JS faço percorre todos campos com alt=”yes” e vou validando conforme os atributos de cada campo. O problema é que no Fire Fox..., ela não pega campos select.... tipo assim: if(ele.elements[i].name=="grupo"){ var sel = ele.elements[i].selectedIndex if (sel=="0"){ erro = erro + "Informe o grupo de cadastro.\n" } } Segue função completa. function form_simples(ele){ var teste1; var teste2; var uf; var checado; var dataC; var dataD; var dataF; var dia; var mes; var ano; numero = ele.elements.length erro = ""; for(i=0; i<numero; i++){ if(ele.elements[i].alt == "yes"){ if(ele.elements[i].name == "cep"){ nro = ele.elements[i].value nro1 = nro.length //alert(nro); if (nro.length < 9 ) { erro = erro + "Campo cep. deve ter 9 caracteres. \n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name == "busca"){ nro = ele.elements[i].value nro1 = nro.length if (nro.length < 3 ) { erro = erro + "Informe no mínimo 03 caracteres. \n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name == "uf"){ uf = ele.elements[i].value.toUpperCase(); //alert(uf); if (uf == "AC" || uf == "AL" || uf == "AM" || uf == "AP" || uf == "BA" || uf == "CE" || uf == "DF" || uf == "ES" || uf == "GO" || uf == "MA" || uf == "MG" || uf == "MS" || uf == "MT" || uf == "PA" || uf == "PB" || uf == "PE" || uf == "PI" || uf == "PR" || uf == "RJ" || uf == "RN" || uf == "RO" || uf == "RR" || uf == "RS" || uf == "SC" || uf == "SE" || uf == "SP" || uf == "TO"){ } else{ erro = erro + "Uf inválida.\n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name == "nada"){ nro = ele.elements[i].value if (nro == "N") { erro = erro + "Não há elementos para gravação.\n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name=="sexo" && ele.elements[i].id=="1"){ var nro = ele.elements[i].checked; //alert(nro) } if(ele.elements[i].name=="sexo" && ele.elements[i].id=="2"){ var nro1 = ele.elements[i].checked; if (nro==false && nro1==false){ erro = erro + "Informe o sexo.\n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name=="pessoa" && ele.elements[i].id=="1"){ var nro = ele.elements[i].checked; //alert(nro) } if(ele.elements[i].name=="pessoa" && ele.elements[i].id=="2"){ var nro1 = ele.elements[i].checked; if (nro==false && nro1==false){ erro = erro + "Informe o Tipo de Pessoa.\n" } } ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// if(ele.elements[i].name=="subGrupo" && ele.elements[i].id=="1"){ var nro = ele.elements[i].checked; //alert(nro) } if(ele.elements[i].name=="subGrupo" && ele.elements[i].id=="2"){ var nro1 = ele.elements[i].checked; if (nro==false && nro1==false){ erro = erro + "Informe o SUB GRUPO.\n" } } ///////////////////////////////////////////////////////////////// if(ele.elements[i].name=="grupo"){ var sel = ele.elements[i].selectedIndex if (sel=="0"){ erro = erro + "Informe o grupo de cadastro.\n" } } if(ele.elements[i].name=="idCad"){ var sel = ele.elements[i].selectedIndex if (sel=="0"){ erro = erro + "Informe a conta.\n" } } if(ele.elements[i].name=="nome_da_lista"){ var sel = ele.elements[i].selectedIndex if (sel=="0"){ erro = erro + "Informe a listagem a ser executada.\n" } } if(ele.elements[i].name == "email" || ele.elements[i].name == "e-mail" || ele.elements[i].name == "mail"){ if(ele.elements[i].value.indexOf('@')==-1 || ele.elements[i].value.indexOf('.')==-1){ erro = erro + "Preencha o campo "+ ele.elements[i].name.toLowerCase() +" corretamente. \n" } }else{ if(ele.elements[i].value==""){ erro = erro + "Preencha o campo "+ ele.elements[i].name.toLowerCase() +". \n" } } } if(ele.elements[i].name == "telefone"){ nro = ele.elements[i].value nro1 = nro.length if (nro.length < 13 ) { erro = erro + "Campo TELEFONE deve ter 13 caracteres. \n" } } if(ele.elements[i].title == "yes"){ if(ele.elements[i].name == "texto"){ String = ele.elements[i].value //alert(String) Resultado = String //Retira os espaços do inicio //Enquanto o primeiro caracter for igual à "Espaço" //1 caracter do inicio é removido var w w = 0 //alert(Resultado) if (Resultado.charCodeAt(2-1) == '32'){ } while (Resultado.charCodeAt(0) == '32'){ Resultado = String.substring(w,String.length); w++;} //Pega a string já formatada e agora retira os espaços do final //mesmo esquema, enquanto o ultimo caracter for um espaço, //ele retira 1 caracter do final... while(Resultado.charCodeAt(Resultado.length-1) == "32"){ Resultado = Resultado.substring(0,Resultado.length-1); } ele.elements[i].value = Resultado String = "" } ///////////////////////////////////////////////////////////////////////////// if(ele.elements[i].value==""){ erro = erro + "Preencha o campo "+ ele.elements[i].name.toLowerCase() +". \n" } } } if(erro != ""){ alert("Erros:\n"+erro); return false; }else{ return true; } } Agradeço qualquer ajuda. JGD :blink: Olá pessoa, pesquisei um pouco e achei um código do amigo fercosmig... Dei uma adaptada e tá rolando legal agora. Segue código: function validacampos(){ var campo = document.forms[0]; var i=0; var erro =""; //var nro1 =""; //var nro2 =""; for (i=0; i< campo.elements.length; i++){ var nomecampo = campo.elements[i].name; if (nomecampo.substring(5,0) == 'obrig'){ //alert(nomecampo); var valida = campo.elements[i].value; if (valida == ''){ erro = erro + "Preencha o campo "+ campo.elements[i].title +" corretamente. \n" } if (nomecampo == "obrigTipoArt"){ var sel = campo.elements[i].selectedIndex var arqP = document.form2.arquivo.value; var arqV = document.form2.link.value; if (sel=="2" && arqP=="" ){ erro = erro + "Informe o Arquivo PPT.\n" } if (sel=="3" && arqV=="" ){ erro = erro + "Informe o Link de Video(YouTube).\n" } } if (nomecampo == "obrigCheca" && campo.elements[i].id=="1"){ var nro1 = campo.elements[i].checked; } if(nomecampo == "obrigCheca" && campo.elements[i].id=="2"){ var nro2 = campo.elements[i].checked; if (nro1==false && nro2==false){ erro = erro + "Informe sobre a opção.\n" } } if (nomecampo == "obrigEmail"){ if(campo.elements[i].value.indexOf('@')==-1 || campo.elements[i].value.indexOf('.')==-1){ erro = erro + "Preencha o campo Email corretamente. \n" } } } } if(erro != ""){ alert("Erros:\n"+erro); return false; }else{ return true; } } //--> Value
  9. jgd

    (Resolvido) Pag Seguro

    ju_rezende, É como o colega bareta passo os links. A contratação e formalização, você pode deixar com o cliente mesmo. Você só tem que adaptar o script deles(pagSeguro) no seu projeto... Com carrinho ou sem... É "xuxu beleza". Boa sorte! JGD
  10. Certo rafael... Valeu. Só que isso tem que ser feito sem considerar o ano porque senão da na mesma. Traz errado. Abraço JGD!
  11. Ok Pessoal, Seguinte, tenho em minha table cadastro (data=campo data no db Access): registro 1 Pedro 02/04/80 registro 2 Maria 30/04/78 registro 3 Antonio 03/05/70 registro 4 Carlos 03/05/75 registro 5 Paulo 01/06/86 se faço assim: Tenho :registro 1 Pedro 02/04/80 registro 2 Maria 30/04/78 registro 3 Antonio 03/05/70 registro 4 Carlos 03/05/75 Porque mês=>4 e mês <=5, depois ordeno. Como agora retirar as datas menor que a data de hoje. Ou então como pergar as datas de hoje até 5 dias para frete. Já tentei : A mesma coisa se comparar com dia > que hoje..... e < data de hoje + 5... Só traz: registro 1 Maria 30/04/78 Ou vem zerado. Há tentei também format(dataNasc,'dd/mm') e foramatDateTime(dataNasc,"dd/mm") Não rolou também.. Tem que ter alguma forma! Abraço JGD
  12. Pessoal, Tenho um form com varios checkbox para testar... O form e gerando dinamicamente conforme informações de um banco de dados. Isso quer dizer que hora terei varios checkboxes, hora só terei um.... A regra é: pelo menos um tem que estar checado. Ai uso o código abaixo... O poblema é que quando a consulta do banco de dados só traz um linha... Ou seja gera o form só com um checkbox... O laço for do javascript não pega o checkbox e acaba solicitando a checagem mesmo que já esteja checado. Com testar "undefined" no "form.length" ??? Segue trecho : if(ele.elements[i].name=="sel"){ var ok1 = false; var form = document.forms[0].chk; //alert("1 " +form.length); for (b = 0; b <= form.length; b++) { if (form[b].checked) { ok1 = true; // alert("2" +b); } } if (!ok1) { // alert("3 "+ b); erro = erro + "Selecione pelo menos um participante.\n" } } Agradeço qualquer ajuda. JGD
  13. Pessol, Só para feed-back.. Consegui fazer... Só precisei determinar (limitar) o numero maximo de avisos. Por Ex.: em 10. Crie 10 funções javascript e 10 stylos correspontes para cada div criada no Do While Aumentei Div principla para alocar as demais div´s E Xuxu Beleza! Funcionou. Vale JGD
  14. Andreia, Olha só: Agora tá funcionando certinho... Eu baixei o FireBug... pelo que vi é chei de recursos... eu ainda não sei usar.. vou procurar informações de como utilizar a ferramenta. O engraçado é que depois da instalação... não sei ao certo. A rotina começou a funcionar. Valeu!
  15. Pessoal preciso de ajuda com os procedimentos de ajax outra vez. É o seguinte: Tenho que gerar avisos na tela para o usuário tipo Pop-Up Então para fazer isso dinamicamente fiz isso com Ajax + ASP. Funcionou! O problema esta quando tem mais de um aviso. Porque não sei de dá para passar pelo XMLHttpRequest , por exemplo, mais de um conteúdo para alimenta div´s diferentes. Para um aviso ( que está funcionando ) utilizei o seguinte código: <script> var requipA; function loadXMLDoc(url){ requipA = null; if (window.XMLHttpRequest) { requipA= new XMLHttpRequest(); requipA.onreadystatechange = ProcessEquipA; // o req. foi alterado para requip requipA.open("POST", url, true); // o req. foi alterado para requip requipA.send(null); // o req. foi alterado para requip } else if (window.ActiveXObject) { try { requipA= new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) { try { requipA= new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { try { requipA= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { requipA= new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { requipA= false; } } } } if (requipA) { //alert("vai ") requipA.onreadystatechange = ProcessEquipA; requipA.open("POST", url, true); requipA.send(); } } } function ProcessEquipA(){ if (requipA.readyState == 4) { if (requipA.status == 200) { document.getElementById("popup").innerHTML = requipA.responseText; } else { alert(""+requipA.responseText) //alert("Houve um problema ao obter os dados:\n" + requipA.statusText); } } } function verificaAlerta(valor){ //alert("aqui "+valor) loadXMLDoc("verificaAlerta.asp?idUsu="+valor); } ///////////////////////////////////////////////////////////////////////////// // Função que fecha o pop-up ao clicar no link fechar function fechar1(){ document.getElementById('popup').style.display = 'none'; } // Aqui definimos o tempo para fechar o pop-up function abrir1(){ document.getElementById('popup').style.display = 'block'; //setTimeout ("fechar()", 3000); } </script> No Html: <DIV id="popup" class="popup"> </DIV> No ASP: <%Response.Charset="ISO-8859-1" %><!--#include file="config_var.asp" --><% Set cnn = Server.CreateObject("adodb.Connection") if strOn_Off = "off" then cnn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\ASP\Dados\bd_dados.mdb; Uid=zzz; Pwd=zzz;" else cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\pasta\Dados\bd_dados.mdb; Uid=zzz; Pwd=zzz;" end if Set rs = Server.CreateObject("ADODB.Recordset") sql = " Select titulo from tbFollowUp where idUsuPara = " & Request("idUsu") & "" rs.Open sql,cnn,3 n=0 while not rs.eof n=n+1 %> <table width="300" border="0"> <tr><td colspan=2> <table width="300" border="0"> <tr><td width="280"></td><td><small><a href="java script: fechar1();">[X]</a></small></td></tr></table> </td></tr> <tr><td width="50" valign="top" height=110> </td> <td width="250" valign="top"><b> Alerta! </b><br><br> <%=rs("titulo")%><br> </td></tr> <tr><td colspan=2> <table width="300" border="0"> <tr><td width="280"></td><td><small><a href="java script: fechar1();">[X]</a></small></td></tr></table> </td></tr> </td></tr></table> <% rs.MoveNext Wend%> <% rs.Close Set rs = Nothing %> Então pensei em fazer no Do While varias div´s com suas funções “fechar! Correspondes e carregar tudo isso em um div principal. while not rs.eof n=n+1 %> <DIV id="popup<%=n%>" class="popup"> <table width="300" border="0"> <tr><td colspan=2> <table width="300" border="0"> <tr><td width="280"></td><td><small><a href="java script: fechar<%=n%> ();">[X]</a></small></td></tr></table> </td></tr> <tr><td width="50" valign="top" height=110> </td> <td width="250" valign="top"><b> Alerta! </b><br><br> <%=rs("titulo")%><br> </td></tr> <tr><td colspan=2> <table width="300" border="0"> <tr><td width="280"></td><td><small><a href="java script: fechar<%=n%>();">[X]</a></small></td></tr></table> </td></tr> </td></tr></table> <script> function fechar<%=n%> (){ document.getElementById('popup').style.display = 'none'; } </script> </Div> <% rs.MoveNext Wend%> Então até gerou mais de um aviso na tela, porém esta dando erro de objeto no javascript e também gostaria que eles ficassem em cascata um sobre ou outro como as janelas do windows (cascata) e não um embaixo do outro. Deve ser css que não sei como ajustar dinamicamente posicionamento e dimensões.. Aí pensei em separar o conteúdo dos avisos das funcões javascript... Mas como alimentar divs diferentes no mesmo XMLHttpRequest Se tiver como em um div o javascript e e outra o conteúdo do aviso. Agradeço qualquer ajuda. JGD
  16. :blink: Olá Pessoal, Porque o pre load abaixo esta travando no Internet Explorer 7.0 e Fire Fox stop(); this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); this.loaderInfo.addEventListener(Event.COMPLETE, onComplete); function onProgress(e:ProgressEvent):void { var loaded:Number = e.target.bytesLoaded; var total:Number = e.target.bytesTotal; var pct:Number = loaded/total; mc_barra2.scaleX = pct; txtcarr.text = "Carregando... " + (Math.round(pct * 100)) + "%"; } function onComplete(e:Event):void { gotoAndPlay(2); } Trata-se de um banner que esta em uma página extensão ASP. No IE 6.0 funciona certinho. No FF e IE 7.0 Não. Quando ultizo do botão do navegado reload/atualizar... as vez funciona. Quanto utilizo o link´s interno da página... Trava. Já forcei a limpesa das variaveis.. Já forcei a limpeza do cash via e continua travando. Tipo no-cash, etc. Pela ActionScript... tem como evitar cash? Agradeço qualquer ajuda. Abraço JGD
  17. Ok Andreia, 1ª Ogrigado por comentar... Olha só: Ainda estou aprendendo este lance de JavaScript + Ajax.. Então não denho domínio da técnica. Vou tentar resumir a lógica. Na parte Html tenho o form e as div que deverão ser alterada pelo ajax. Depois tenho a rotina do javascript passa para o Ajax... Que manda para a rotina Asp.... Que por sua vez gera o conteudo que alimenta o Select.... Que então retorna o conteudo pelo Ajax... Que passando para a div. É isso! Desculpa, mais como disse estou aprendendo... Se esta errado(logica, etc.) por favor alguém me oriente. Eu realmente não sei o que está errado.. Contudo, praticamente as duas rotinas (javaScript + Ajax ) são igual em sua estrutura mas uma funciona outra não. Porém, fico mais animado em saber que você afirma que o innerHTML funciona no FF. JGD
  18. :wacko: Olá Pessoal, Estou com seguinte problema envolvendo JavaScript,Ajax,ASP e Navegadores I.E e FF. Seguinte tenho <form name="form" action="admin_rotina1.asp" method="post" onSubmit='return form_simples(this)'> <select name="grupo" Onchange="atualizaCliente(this.value);" alt="yes"> <option value="0">--</option> <option value="SO">Sócios</option> <option value="FR">Freqüentadores</option> <option value="FA">Familiar</option> <option value="PR">Prestadores</option> <option value="FO">Fornecedores</option> </select> <div id="lanc" > <select name="idCad" alt="yes"> <option value="0">--</option> </select> </div> <div id="lancG"> <select name="idSubGrupoContabil" Onchange="atualizaSuCta(this.value);" alt="yes"> <option value="0">--</option> </select> </div> <div id="lancSC"> <select name="idSubCtaContabil" alt="yes"> <option value="0">--</option> </select> </div> </form> Depois mando a opção selecionada pelo usuário (atualizaCliente) para JavaScript + Ajax <script> //////Rotina AJAX AtualizaCliente////// var requip; function loadXMLDoc(url){ requip = null; if (window.XMLHttpRequest) { requip= new XMLHttpRequest(); requip.onreadystatechange = ProcessEquip; // o req. foi alterado para requip requip.open("POST", url, true); // o req. foi alterado para requip requip.send(null); // o req. foi alterado para requip } else if (window.ActiveXObject) { try { requip= new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) { try { requip= new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { try { requip= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { requip= new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { requip= false; } } } } if (requip) { //alert("vai ") requip.onreadystatechange = ProcessEquip; requip.open("POST", url, true); requip.send(); } } } ///receber o select que o ASP gerou e manda para a div elemento. function ProcessEquip(){ if (requip.readyState == 4) { if (requip.status == 200) { document.getElementById("lanc").innerHTML = requip.responseText; } else { ///alert(""+requip.responseText) alert("Houve um problema ao obter os dados:\n" + requip.statusText); } } } // Manda valor do HTML Campo para o ASP Ajax function atualizaCliente(valor){ //alert("aqui "+valor) loadXMLDoc("atualizaCliente.asp?grupo="+valor); } ///////////////////////////////////////////////////////////////////////////// Rotina ASP Pega o paramentro que o Ajax mandou e alimenta o select <%Response.Charset="ISO-8859-1" 'acentuação %> <!--#include file="config_var.asp" --> <% Set cnn = Server.CreateObject("adodb.Connection") if strOn_Off = "off" then cnn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\ASP\Dados\bdados.mdb; Uid=XXX; Pwd=zzz;" else cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\PastaDominio\Dados\bdados.mdb; Uid=xxx; Pwd=zzz;" end if Set rs = Server.CreateObject("ADODB.Recordset") sql = " Select * from tbCad2 where tipoCad = '" & Request("grupo") & "' order by nome" rs.Open sql,cnn,3 %> <select name="idCad" alt="yes"> <option value="0">--</option> <% while not rs.eof %> <option value="<%=rs("idCad")%>"><%=rs("nome")%></option> <% rs.MoveNext Wend%> </select> <% rs.Close Set rs = Nothing %> OK! Funciona no IE e FF Então neste mesmo form tenho mais os elementos : <input type="radio" name="tipoLanc" alt="yes" id="1" value="1" OnClick="atualizaGrupo(this.value);">Crédito <input type="radio" name="tipoLanc" alt="yes" id="2" value="2" OnClick="atualizaGrupo(this.value);">Débito Depois a rotina correspondente javascript + ajax : atualizaGrupo <script> var requip2; function loadXMLDoc2(url){ requip2 = null; if (window.XMLHttpRequest) { requip2= new XMLHttpRequest(); requip2.onreadystatechange = ProcessEquip2; // o req. foi alterado para requip requip2.open("POST", url, true); // o req. foi alterado para requip requip2.send(null); // o req. foi alterado para requip } else if (window.ActiveXObject) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { requip2= new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { requip2= false; } } } } if (requip2) { //alert("vai ") requip2.onreadystatechange = ProcessEquip2; requip2.open("POST", url, true); requip2.send(); } } } function ProcessEquip2(){ if (requip2.readyState == 4) { if (requip2.status == 200) { document.getElementById("lancG").innerHTML = requip2.responseText; } else { //alert("zz "+requip2.responseText) alert("Houve um problema ao obter os dados:\n" + requip2.statusText); } } } function atualizaGrupo(valor){ var tipoNav =navigator.appName; if (tipoNav!="Microsoft Internet Explorer") { alert("Este navegado não dá suporte aos\nrecursos automaticos disponíveis nesta tela.\nRecomendamos a utilização do Internet Explorer."); document.form.getElementById("btGrava").desabled=true; } //alert("aqui "+valor) document.getElementById("lancG").innerHTML = "<div id='lancG'><select name='idSubGrupoContabil' Onchange='atualizaSuCta(this.value);' alt='yes'><option value='0'>--</option></select></div>" document.getElementById("lancSC").innerHTML = "<div id='lancSC'><select name='idSubCtaContabil' alt='yes'><option value='0'>--</option></select><input type='hidden' name='subconta' value='0' alt='yes'></div>" if(valor=="1"){ document.getElementById("boleto").innerHTML = "<div id='boleto'>Gerar Boleto:&nbsp;</td><td><input type='radio' name='boleto' alt='yes' id='1' value='S'>Sim&nbsp;<input type='radio' name='boleto' alt='yes' id='2' value='N'>Não&nbsp;</div>" }else{ document.getElementById("boleto").innerHTML = "<div id='boleto'></div>" } loadXMLDoc2("atualizaSubGrupo.asp?tipoLanc="+valor); } </script> A rotinas ASP correspondente : atualizaGrupo <%Response.Charset="ISO-8859-1" 'acentuação %> <!--#include file="config_var.asp" --> <% Set cnn = Server.CreateObject("adodb.Connection") if strOn_Off = "off" then cnn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\ASP\Dados\bdados.mdb; Uid=XXX; Pwd=zzz;" else cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\PastaDominio\Dados\bdados.mdb; Uid=xxx; Pwd=zzz;" end if Set rs = Server.CreateObject("ADODB.Recordset") sql = " Select * from tbSubGrupo where idG = " & Request("tipoLanc") & " order by subgrupo" rs.Open sql,cnn,3 %> <select name="idSubGrupoContabil" Onchange="atualizaSuCta(this.value);" alt="yes"> <option value="0">--</option> <% while not rs.eof %> <option value="<%=rs("idSg")%>"><%=rs("subgrupo")%></option> <% rs.MoveNext Wend%> </select> <% rs.Close Set rs = Nothing %> Mas esta ultima rotina só funciona no I.E.... No FF não !!! Aí revisei o codigo... não achei nada - a principio, que provocasse erro. Pesquise na net.. e descobri que "supostamente" o innerHTML é nativo do I.E (W3C) e para o Fire Fox (Mozilla) o comando correspondente seria o textContent... Ok! Fiz a função para testar o navegado e.... descobri que até funciona. Porem não gera tags html... porque textContent equivale ao innerText só gerando string texto. Mas o interessante de tudo é a primeira rotina (lá de cima) funiona no FF e utiliza innerHTML. Aí complicou? Funciona uma e não funciona a outro... sendo que são quase iguais. alguém poderia me ajuda?? Abraço JGD
  19. Olá Pessoa. Estou com um problema e não sei bem se é possível fazer isso em JS. Vamos lá : Em um fom com vários input´s (type=text, values numericos) com o mesmo nome como evitar que o usuários digite um valor que já exista em um outros campo input ?? Vou explicar de outra forma: Tenho o seguite form: <form name="form2" method="post" action="admin1.asp" onSubmit='return form_simples2(this)'> 1ª <input type="text" size="2" maxlength="2" name="ordem" value="1"> 2ª <input type="text" size="2" maxlength="2" name="ordem" value="2"> 3ª <input type="text" size="2" maxlength="2" name="ordem" value="3"> 4ª <input type="text" size="2" maxlength="2" name="ordem" value="4"> 5ª <input type="text" size="2" maxlength="2" name="ordem" value="5"> <input type="image" src='btGravar.jpg' alt="Gravar" id=image1 name=image1> </form> Se o usuário digitar por exemplo, no 3ª input o número 1 o form não submete o dados porque já existe o valor 1 no primeiro input. Como varer os demais input´s testando o valor do informado no input focado ? Imagino a seguinte logica : <script> // 1ª Pego o id e o valor do input que disparou o evento ( sei lá via onChange ou onBlur) // alguma coisa assim: a = document.form2.getElementById("id"); b = document.form2.ordem.value; // 2ª Listo dos os elementos do form erro = ""; numero = ele.elements.length for(i=0; i<numero; i++){ // 3ª pego todos o valores diferentes do que já peguei if(ele.elements[i].name == "ordem" && ele.elements[i].id != a){ // 4ª coloco os valores em um array // Não sei fazer.... } // 5ª testo o valor da variavel "b" com os valores do valores do array // Não sei fazer.... // Se exitir da erro.... Caso contrario submete erro = erro + "Valor informado já existe em outro campo \n" if(erro != ""){ alert("Erros:\n"+erro); return false; }else{ return true; } } } </script> Pessoal agradeço qualquer ajuda.... Olha só: Não manjo muito JavaScript, por isso peço que seja bem explicitos. Obrigado JGD
×
×
  • Criar Novo...