Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

[Resolvido] Action com Checkbox

Recommended Posts

Turma,

 

Tenho um FORM com alguns Checkbox's e preciso que ao CLICAR em um dos checkbox's, seja dada um'Action para a página informada no JS de validação e abrindo uma caixa de diálogo perguntando se deseja CONTINUAR ou Não.

 

JS de validação

 

<script> 
function AddServico(Cliente, Pax){
	var url = 'Solicita_Atendimento_Processa.asp';

	var f = document.frmServicos;
	var chk = document.getElementByName("Servico");
	
	for(i = 0; i < chk; i++){
		if(chk[i].checked = true){
			if(browser == 'Microsoft Internet Explorer'){
				url += '?Cliente='+Cliente+'&Pax='+Pax+'&Tipo=Novo';
			}else{
				//document.form.enctype = '';
				//document.form.acao.value = 'excluir';
				document.frmServicos.Cliente.value = Cliente;
				document.frmServicos.Pax.value = Pax;
			}
	
			document.form.action = url;
			document.form.submit();
			}
	}
} 
</script>

FORM com os checkbox's:

 

<form action="" method="post" name="frmServicos" id="frmServicos">
	  <tr align="center">
		<td colspan="7" bgcolor="#DDEEEE" class="Font_Peq_Form">Selecione um Atendimento 
		  <input name="Cliente" type="hidden" id="Cliente" value="<%=Request.QueryString("Cliente")%>">
		  <input name="Pax" type="hidden" id="Pax" value="<%=Request.QueryString("Pax")%>"></td>
		</tr>
	  <tr align="center" bgcolor="#DDEEEE">
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoAer" value="Aereo" onclick="AddServico()"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoHot" value="Hotel" onClick="AddServico()"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoChe" value="CheckIn"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoLoc" value="Locacao"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoRel" value="Relogio"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoTax" value="Taxi"></td>
		<td><input name="Servico" type="checkbox" class="Combo" id="ServicoSal" value="SalaVIP"></td>
	  </tr>
		</form>

Muito obrigado.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tentar solucionar uma solução para a sua dúvida tenho algumas dúvidas minhas:

 

1. Assim que o usuário clicar em um checkbox, uma mensagem de alerta já é exibida perguntando se ele quer prosseguir?

2. Por que você não utiliza uma combobox para isso? Não seria melhor e mais intuitivo?

3. Ou então, por que você não utiliza um radio para isso, selecionando o radio em questão de depois clicando em um botão submit?

4. Você acha que os usuários iriam preferir clicar em uma checkbox e serem redirecionados diretamente para outro site, assim, sem mais nem menos?

5. Será utilizado um botão submit ou button para ativar o script de validação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

klonder

 

Muito obeigado pela ajuda. Enquanto aos seus questionamentos, seguem as respostas:

 

1. Assim que o usuário clicar em um checkbox, uma mensagem de alerta já é exibida perguntando se ele quer prosseguir?

R: Vamos esquecer isto, já que irei deixar para o usuário selecionar um ou mais de um e clicar no Submit.

2. Por que você não utiliza uma combobox para isso? Não seria melhor e mais intuitivo?

R: Vou continuar com o checkbox e deixar conforme a resposta do questionamento 1.

3. Ou então, por que você não utiliza um radio para isso, selecionando o radio em questão de depois clicando em um botão submit?

R: Conforme acima.

4. Você acha que os usuários iriam preferir clicar em uma checkbox e serem redirecionados diretamente para outro site, assim, sem mais nem menos?

R: Conforme informei, irei utilizar o checkbox e no momento do usuário clicar no Submit, ele irá visualizar um alerta perguntando se desejar confirmar os itens selecionados e posterior conitinuação ou não.

5. Será utilizado um botão submit ou button para ativar o script de validação?

R: um botão Submit.

 

Novamente, muito obrigado pela ajuda.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu fiz um script que avalia se existem itens selecionados no checkbox ou não. Caso existam, é exibida uma caixa de diálogo perguntando se o usuário deseja prosseguir ou não.

 

Para pegar os valores checados, é necessário um pequeno código em ASP que recebe os valores dos checkbox marcados (checados). Esse código ASP contém várias maneiras para você receber esses valores que foram selecionados no checkbox, basta escolher uma delas e adaptar conforme o propósito do site.

 

pagina do form:

<script language="JavaScript">
<!--
//Código desenvolvido por: klonder
//Liberado para uso e edição

function validarFormulario(){
objCheckBox = document.forms["frmServicos"].elements["Servicos"];
var marcados = "";
	
	for (i=0; i < objCheckBox.length; i++) {
	   if (objCheckBox[i].checked == true) {
		 marcados = marcados + "\n" + objCheckBox[i].value;
	   }
	}
	if (marcados == "") {
		 	//alert("Vou marcar a 5ª opção!");
			//objCheckBox[4].checked = true;
			alert("Você não selecionou nenhum item!");
			return false;
	}else{
			if(confirm("Itens selecionados:"+marcados+"\n\nDeseja prosseguir?")){
				return true;
			}else{
				return false;
			}
	}

}
-->
</script>

<form name="frmServicos" action="asp_imasters_checkboxASP.asp" method="post" onSubmit="return validarFormulario();">
<table width="600px">
<tr align="center">
	<td colspan="7" bgcolor="#DDEEEE" class="Font_Peq_Form">Selecione um Atendimento:
	<input name="Cliente" type="hidden" id="Cliente" value="<%=Request.QueryString('Cliente')%>">
	<input name="Pax" type="hidden" id="Pax" value="<%=Request.QueryString('Pax')%>">
</tr>
<tr align="center" bgcolor="#DDEEEE">
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoAer" value="Aereo">Aéreo</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoHot" value="Hotel">Hotel</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoChe" value="CheckIn">CheckIn</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoLoc" value="Locacao">Locação</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoRel" value="Relogio">Relógio</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoTax" value="Taxi">Táxi</td>
	<td><input type="checkbox" name="Servicos" class="Combo" id="ServicoSal" value="SalaVIP">SalaVIP</td>
	<td><input type="submit" value=" ok "></td>
</tr>
</table>
</form>

página ASP:

<%
qtd = 0
For Each item In Request.Form("Servicos")
	Response.Write "O item: '" & item & "' foi selecionado!<br>"
	qtd = qtd + 1
Next

Response.write "<br><br>"

'Outra maneira:
Dim counter
For counter = 1 To Request.Form("Servicos").Count
  Response.Write "O item " & Request.Form("Servicos")(counter) & " foi selecionado!<br>"
Next

'Mostrar todos os itens selecionados:
Response.Write "<br><br>Itens selecionados: " & Request.Form("Servicos") & "<br><br>"

if qtd = 0 then
Response.Write "Nenhum item foi selecionado!<br><br>"
else
Response.Write qtd & " itens selecionados!<br><br>"
end if
%>

Se tiver algum erro, por favor me avise para eu editar o post.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

klonder,

 

Muito obrigado por sua ajuda.

Eu copiei e colei seu código para minha página, não selecionei NENHUMA opção e ele deu o Action e deixou passar sem nenhuma mensagem.

Verifiquei qual a mensagem de erro gerada, ficou assim:

 

Line: 60

Char: 15

Error: 'objCheckBox.leight' is null or not an object

Code: 0

 

Novamente obrigado pela ajuda,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a linha no Java Script:

 

for (i=0; i < objCheckBox.length; i++) {

 

e tenha certeza que está como "length" e não como "leight".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... eu deixei o name dos checkboxes como "Servicos", mas o seu está como "Servico". Você terá de alterar isso também. O ideal é copiar todo o código e colar na sua página, não apenas o Java Script.

 

Outra coisa, só para saber... qual o seu navegador? Eu não testei no FireFox ainda, apenas no IE7 e Opera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

klonder,

 

Realmente você está certo. Corrigi e agora está funcionando perfeitamente.

 

Muito obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Que bom!

 

Qualquer dúvida estamos ae!!!

 

Abraços e feliz ano novo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.