Sou novo no fórum, e também sou meio leigo (pra não dizer totalmente com Javascript) embora trabalhe com outras linguagens, como PHP e Visual Basic.
Estou com uma situação aqui que está me tirando do sério. Tenho um formulário, com seis objetos, sendo duas text-boxes (uma para nome da pessoa, a segunda para RG da pessoa) e mais quatro option-buttons (ou botões de rádio), alinhados em dois grupos, sendo dois para selecionar forma de pagamento (a vista ou parcelado 1+1) e o banco onde será efetuado o pagamento (Bradesco ou Santander). No caso destes option-buttons, nenhum deles está selecionado. A idéia é que caso nenhum seja selecionado, o formulário não vá pra frente, alertando o usuário na tela que ele tem que escolher uma opção de pagamento e/ou uma opção de banco onde efetuará o pagamento.
O que acontece é o seguinte: ao tentar validar juntos text-boxes e os option-buttons juntos, dá algum erro (na validação dos option-buttons) e o formulário é submetido sem reportar o erro e brecar o processo. Se desativo o script de verificação dos text-boxes, o script dos option-buttons funciona perfeitamente. Tentei mesclar os códigos JavaScript num único script, também sem sucesso.
Pesquisei em vários fóruns como poderia estar colocando uma chamada dupla dos códigos, no código do formulário, porém após pesquisas e tentativas, não funcionou, e fiquei sem opção, tendo que vir abrir o tópico aqui. Peço desculpas se estiver fazendo isso no local errado ou abrindo tópico duplicado, sei que é um saco pros moderadores do fórum quando acontecem essas situações.
Segue abaixo o código dos Javascripts e o HTML com a respectiva chamada do Form:
<html>
<head>
<meta http-equiv="Content-Language" content="pt-br">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Teste de validação de formulário</title>
</head>
<body>
<script language="JavaScript" >
function validaFormPreenchimento(){
// Valida Nome 01
if(document.frm_confirma.nome_pessoa1.value=="" || document.frm_confirma.nome_pessoa1.value.length < 8)
{
alert( "Preencha o NOME COMPLETO da pessoa, campo obrigatório!" );
document.frm_confirma.nome_pessoa1.focus();
return false;
}
// Valida RG Pessoa 01
if(document.frm_confirma.rg_pessoa1.value=="" || document.frm_confirma.rg_pessoa1.value.length < 5)
{
alert( "Digite o RG exato da pessoa, incluindo órgão emissor." );
document.frm_confirma.rg_pessoa1.focus();
return false;
}
return true;
}
</script>
<script>
function validaFormOpcoes(nform) {
// Valida se foi selecionada uma opção de PARCELAMENTO
marcado = -1
for (i=0; i<nform.opt_parcelamento.length; i++) {
if (nform.opt_parcelamento[i].checked) {
marcado = i
resposta = nform.opt_parcelamento[i].value
}
}
if (marcado == -1) {
alert("É necessário que você ESCOLHA UMA OPÇÃO DE PARCELAMENTO dentre as existentes, para finalizar sua reserva.");
nform.opt_parcelamento[0].focus();
return false;
}
// Valida se foi selecionado um BANCO onde será efetuado o pagamento
marcado1 = -1
for (i=0; i<nform.opt_banco.length; i++) {
if (nform.opt_banco[i].checked) {
marcado1 = i
resposta1 = nform.opt_banco[i].value
}
}
if (marcado1 == -1) {
alert("É necessário que você ESCOLHA UMA OPÇÃO DE BANCO para efetuar o seu(s) pagamento(s), antes de finalizar a compra. Você receberá os dados de pagamento para este banco, então selecione o que lhe for mais conveniente.");
nform.opt_banco[0].focus();
return false;
}
return true;
}
</script>
</body>
<form action="página_destino.htm" method="POST" name="frm_confirma" id="frm_confirma" onSubmit="return validaFormPreenchimento(); return validaFormOpcoes(this);">
<p>Nome da Pessoa: <input type="text" name="nome_pessoa1" size="20"></p>
<p>Rg: <input type="text" name="rg_pessoa1" size="20"></p>
<p> </p>
<p><input type="radio" value="A vista" name="opt_parcelamento">Pagamento a Vista</p>
<p><input type="radio" name="opt_parcelamento" value="V2">Pagamento 1x + 1x</p>
<p> </p>
<p><input type="radio" name="opt_banco" value="bradesco"> Banco Bradesco</p>
<p><input type="radio" name="opt_banco" value="santander"> Banco Santander</p>
<p><button name="B1" type="submit">Enviar</button></p>
<p> </p>
</form>
</html>
Pergunta
Wilson R. Degressi Míccoli
Bom dia a todos.
Sou novo no fórum, e também sou meio leigo (pra não dizer totalmente com Javascript) embora trabalhe com outras linguagens, como PHP e Visual Basic.
Estou com uma situação aqui que está me tirando do sério. Tenho um formulário, com seis objetos, sendo duas text-boxes (uma para nome da pessoa, a segunda para RG da pessoa) e mais quatro option-buttons (ou botões de rádio), alinhados em dois grupos, sendo dois para selecionar forma de pagamento (a vista ou parcelado 1+1) e o banco onde será efetuado o pagamento (Bradesco ou Santander). No caso destes option-buttons, nenhum deles está selecionado. A idéia é que caso nenhum seja selecionado, o formulário não vá pra frente, alertando o usuário na tela que ele tem que escolher uma opção de pagamento e/ou uma opção de banco onde efetuará o pagamento.
O que acontece é o seguinte: ao tentar validar juntos text-boxes e os option-buttons juntos, dá algum erro (na validação dos option-buttons) e o formulário é submetido sem reportar o erro e brecar o processo. Se desativo o script de verificação dos text-boxes, o script dos option-buttons funciona perfeitamente. Tentei mesclar os códigos JavaScript num único script, também sem sucesso.
Pesquisei em vários fóruns como poderia estar colocando uma chamada dupla dos códigos, no código do formulário, porém após pesquisas e tentativas, não funcionou, e fiquei sem opção, tendo que vir abrir o tópico aqui. Peço desculpas se estiver fazendo isso no local errado ou abrindo tópico duplicado, sei que é um saco pros moderadores do fórum quando acontecem essas situações.
Segue abaixo o código dos Javascripts e o HTML com a respectiva chamada do Form:
Agradeço quem puder me dar uma luz nisso...
Abraços e bom domingo.
Wilson
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.