Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 6

Como ignorando o FIELDSET no FOR de um fomulário???

23-07-2012 18:08

Tenho o seguinte código,
<html> <head> <title>Teste de alterar o form</title> </head> <script language="javascript"> var valorForm; var icomprara; function carregadados(){ for (icomprara=0;icomprara<document.forms[0]..length;icomprara++){ valorForm=valorForm+ "*|*" +document.forms[0].elements[icomprara].value; } valorForm=valorForm.split("*|*"); } function comparar(idForm) { var idForm = idForm; for (icomprara=0;icomprara<document.forms[0].length;icomprara++){ if (valorForm[icomprara+1]!==document.forms[0].elements[icomprara].value) { var teste = document.forms[0].elements[icomprara].value; var alterado = true; } } if (alterado == true){ alert(teste); return; } else { alert("Não Alterado"); document.getElementById(idForm).action='#'; } } </script> <body onload="carregadados();"> <form action="teste.html" id="t"> <fieldset><!-- está pegando essa parte como um campo--> <input id="valor" type="text" value="000001" name="valor1"> <input id="valor2" type="text" value="teste2" name="valor2"> <input id="valor3" type="text" value="teste3" name="valor3"> <input id="valor4" type="text" value="teste4" name="valor4"> </fieldset> <input type="submit" value="Comparar" onclick="javascript: comparar('t');"> </form> </body> </html>

Então galera, esse código é para comprar o form e verificar se o form foi alterado, até ai tudo bem... Ele funciona bem quando o form não tem um fieldset, daí ele se enrola e pega o fieldset como se fosse um campo do formulário...

Alguém pode me ajudar a ignorar o fieldset ou a pegar só os campos utilizados no formulário???
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como ignorando o FIELDSET no FOR de um fomulário???

23-07-2012 18:21

Creio que no seu caso o botão submit é que está contando como um campo a mais, e não o fieldset.

Te passo um exemplo bem mais simples, que vai verificar se o campo foi alterado ou não, baseando-se no id e value do input text.

<script> function Verifica() { for(i = 0; i < document.form.length-1; i++) { if(document.form.elements[i].id!=document.form.elements[i].value) { alert('alterado'); } } } </script> <form name="form"> <input type="text" id="value1" name="campo1" value="value1"> <input type="button" onclick="Verifica()" value="verifica"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 6

Como ignorando o FIELDSET no FOR de um fomulário???

23-07-2012 23:56

Kleber, adorei como simplificou a volta ao mundo que estava dando nesse código, muito obrigado mesmo... Mas quando coloco a porcaria do fieldset no form, ele captura o fieldset e interpreta como "undefined"... Não entendi o pq, gostaria de ajuda para retornar somente para os campos dos formulários...
A resposta obvia seria tira o fieldset, mas não posso pois faz parte do projeto em produção, e não tenho como alterar 300 JSPs, por causa do css padrão do projeto que tem de ser homologado... (resumindo estou ferrado ou tem jeito?)

<script> function Verifica() { for(i = 0; i < document.form.length-1; i++) { if(document.form.elements[i].id!=document.form.elements[i].value) { alert('alterado'); } } } </script> <form name="form"> <fieldset> <input type="text" id="value1" name="campo1" value="value1"> </fieldset> <input type="button" onclick="Verifica()" value="verifica"> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como ignorando o FIELDSET no FOR de um fomulário???

24-07-2012 10:51

Você pode usar jQuery? Porque com jQuery dá para identificar exatamente o input text.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 6

Como ignorando o FIELDSET no FOR de um fomulário???

24-07-2012 11:12

Kleber, coloquei um IF para o TYPE = TEXT, até ai tudo bem, ignorei o FIELDSET o problema agora é que não tem como comprar os outros tipos, não entendi o pq... Ex: quando coloca (type == "checkbox") por exemplo não funciona... exite alguma forma de fazer isso com Jquery que conheça??? pq já desisti desta função hehehe
<script> function Verifica() { for(i = 0; i < document.form.length-1; i++) { if((document.form.elements[i].type == "text")) { if(document.form.elements[i].id!=document.form.elements[i].value) { alert('alterado'); } } } } </script> <form name="form"> <fieldset> <input type="text" id="value1" name="campo1" value="value1"> </fieldset> <input type="button" onclick="Verifica()" value="verifica"> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como ignorando o FIELDSET no FOR de um fomulário???

24-07-2012 11:33

Esse script faz a comparação somente dos input text, verificando se foram alterados, baseando-se em id e value, usando jQuery.

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#Verifica").click(function() { var data = $('input[type=text]'); // captura input text $.each(data, function(key, objeto) { // percorre todos inputs text if( objeto.value != objeto.id ) { // compara se o value do input é diferente do id alert('alterado'); // exibe quando forem diferentes } }); }); }); </script> <form name="form"> <fieldset> <input type="text" id="value1" name="campo1" value="value1"> <input type="text" id="value2" name="campo2" value="value2"> <input type="button" id="Verifica" value="verifica"> </fieldset> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 6

Como ignorando o FIELDSET no FOR de um fomulário???

24-07-2012 11:49

Kleber, sem querer incomodar, mas incomodando, eu sou totalmente ignorante em Jquery, e a minha ideia não seria pegar somente os campos em TEXT, mas também os campos RADIO, CHECKBOX, TEXTAREA, ETC... Como eu faço para pegar tudo, menos o fieldset que estava dando merda na outra função... (Agora com Jquery, nem sei se daria problema)...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como ignorando o FIELDSET no FOR de um fomulário???

24-07-2012 12:24

Nesse caso iria ter que fazer um each para cada grupo de elementos do formulário.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]