Pessoal, tenho um javascript que faz as validações dos campos e dos checkbox do meu jsp, só que a parte dos checkboxes não está funcionando, o sistema simplesmente ignora essa parte.
function valida_agenda(agenda)
{
var lastRow = qtdeCampos;
var i;
if ((agenda.data_cad.value=="")||(agenda.tecnologia.value==""))
{
window.alert ('Você precisa informar os dados para cadastro')
return false;
}
for (i=1; i<=lastRow; i++) {
var assunto = document.getElementById('assunto' + i);
if ( assunto.value.length <= 0) {
alert('O Campo Assunto ' + i + ' esta vazia');
return false;
}
var tipo = document.getElementById('tipo' + i);
if ( tipo.value.length <= 0) {
alert('O Campo Tipo ' + i + ' esta vazia');
return false;
}
var apr = document.getElementById('apr' + i);
if (apr.value.length <= 0) {
alert('O campo Apresentador ' + i + ' esta vazia');
return false;
}
var horario = document.getElementById('horario' + i);
if (horario.value.length <= 0) {
alert('O campo Horário ' + i + ' esta vazia');
return false;
}
var duracao = document.getElementById('duracao' + i);
if (duracao.value.length <= 0) {
alert('O campo Duração ' + i + ' esta vazia');
return false;
}
}
if (agenda.comite.checked == false && agenda.apr.checked == false){
if (confirm("You don't select the Committee or Presenters options, would you like to communicate them later?"))
return true;
}
return false;
}
Essa parte o sistema não reconhece, fiz alguma coisa de errado?
if (agenda.comite.checked == false && agenda.apr.checked == false){
if (confirm("You don't select the Committee or Presenters options, would you like to communicate them later?"))
return true;
}
return false;
}
Alguém pode me ajudar com isso?
Marcos
Posta o seu jsp para ficar melhor…
e também… coloca um alert(agenda.comite.checked) só para ver o que esta retornando…
Blz Fernando, obrigado por responder.
segue o JSP.
<%@ page contentType="text/html; charset=iso-8859-1" session="true" import="util.*" import="java.sql.*" import="java.util.Date"
import="java.util.*" import="java.text.SimpleDateFormat" errorPage=""%>
<%
//ABRE CONEXÃO COM O BANCO
ConexaoUtil c = new ConexaoUtil();
ResultSet rs_resp = null;
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
<!--
Created by Artisteer v2.4.0.25435
Base template (without user's data) checked by http://validator.w3.org : "This page is valid XHTML 1.0 Transitional"
-->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="Cache-Control" content="no-cache, no-store" />
<meta http-equiv="Pragma" content="no-cache, no-store" />
<meta http-equiv="expires" content="Mon, 06 Jan 1990 00:00:01 GMT" />
<title>Portal GGP</title>
<script type="text/javascript" src="../js/validacoes.js"></script>
<script type="text/javascript" src="../js/autocomplete.js"></script>
<script type="text/javascript" src="../jscalendar-1.0/calendar.js"></script>
<script type="text/javascript" src="../jscalendar-1.0/calendar-setup.js"></script>
<script type="text/javascript" src="../jscalendar-1.0/lang/calendar-br.js"></script>
<link rel="stylesheet" type="text/css" media="screen,projection" href="../jscalendar-1.0/calendar-brown.css" />
<link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" />
<!--[if IE 6]><link rel="stylesheet" href="../css/style.ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="../css/style.ie7.css" type="text/css" media="screen" /><![endif]-->
<script language = "javascript">
var qtdeCampos = 2;
function addCampos() {
if (qtdeCampos <= 40) {
var objPai = document.getElementById("campoPai");
//Criando o elemento DIV;
var objFilho = document.createElement("div");
//Definindo atributos ao objFilho:
objFilho.setAttribute("id","filho"+qtdeCampos);
//alert(qtdeCampos);
//Inserindo o elemento no pai:
objPai.appendChild(objFilho);
//Escrevendo algo no filho recém-criado:
document.getElementById("filho"+qtdeCampos).innerHTML = "<input type='hidden' id='idAge"+qtdeCampos+"' name='idAge' value='"+qtdeCampos+"'>"+
"<table id='idTblAge"+qtdeCampos+"' name='idTblAge"+qtdeCampos+"' border='0' cellspacing='0' cellpadding='0'>"+
"<tr>"+
"<td width='285px'>"+
"<a href='javascript:;'><img src='../images/eliminar.gif' border='0' onclick='removerCampo("+qtdeCampos+")' value='Remove'></a>"+
"<input type='text' name='assunto"+qtdeCampos+"' id='assunto"+qtdeCampos+"' size='37'onkeyup='combo_assunto(this.value,"+qtdeCampos+");' onkeydown='processReqChange_combo_assunto("+qtdeCampos+");' onclick='hide_ass("+qtdeCampos+");' /><br>"+
"<div id='combo_assuntos"+qtdeCampos+"' style='display:none;' class='autocompleteAgeForm'></div>"+
"</td>"+
"<td width='105px'>"+
"<select name='tipo"+qtdeCampos+"' id='tipo"+qtdeCampos+"' >"+
"<option></option>"+
"<option value='Status'>Status</option>"+
"<option value='IST'>IST</option>"+
"<option value='CET'>CET</option>"+
"<option value='BET'>BET</option>"+
"<option value='PRM'>PRM</option>"+
"<option value='PAT'>PAT</option>"+
"</select>"+
"</td>"+
"<th width='305px'>"+
"<input type='text' id='apr"+qtdeCampos+"'name='apr"+qtdeCampos+"' size='47' onkeyup='combo_apres(this.value,"+qtdeCampos+");' onkeydown='processReqChange_combo_apres("+qtdeCampos+");' onclick='hide_users("+qtdeCampos+");'/><br>"+
"<div id='combo_apres"+qtdeCampos+"' style='display:none;' class='autocompleteAgeForm'></div>"+
"</th>"+
"<td width='83px'>"+
"<input name='hora"+qtdeCampos+"' type='text' id='hora"+qtdeCampos+"' size='2' maxlength='2' />:<input name='min"+qtdeCampos+"' type='text' id='min"+qtdeCampos+"' size='2' maxlength='2' />"+
"</td>"+
"<td>"+
"<input name='tempo"+qtdeCampos+"' type='text' id='tempo"+qtdeCampos+"' size='3' maxlength='3' />"+
"</td>"+
"<td>"+
"<input class=btnmain type='button' value='Add line' onclick='addCampos();' />"+
"</td>"+
"</tr>"+
"</table>";
qtdeCampos++;
}
var id = qtdeCampos - 1;
var id1 = qtdeCampos - 2;
//alert(id);
var hora = document.getElementById("hora"+id1).value;
var min = document.getElementById("min"+id1).value;
var tempo = document.getElementById("tempo"+id1).value;
var horaNova = document.getElementById("hora"+id);
var minNovo = document.getElementById("min"+id);
date = new Date();
date.setHours(parseFloat(hora));
date.setMinutes(parseFloat(min));
date.setMinutes(date.getMinutes(parseFloat(min)) + parseFloat(tempo));
horaNova.value = date.getHours();
minNovo.value = date.getMinutes();
if (minNovo = 0){
minNovo = "00";
}
}
function removerCampo(id) {
var objPai = document.getElementById("campoPai");
var objFilho = document.getElementById("filho"+id);
//Removendo o DIV com id específico do nó-pai:
var removido = objPai.removeChild(objFilho);
qtdeCampos = qtdeCampos - 1;
}
</script>
</head>
<body bgcolor="#cc9933">
<div class="art-sheet-agenda">
<form id="agenda" name="agenda" method="post" action="../CadastraAgenda" onsubmit="return valida_agenda(this);">
<input type='hidden' id='idAge1' name='idAge' value='1'>
<table class="art-article" border="1" cellspacing="0" cellpadding="0" width="100%" align=center>
<tr>
<th>GGP Meeting</th>
</tr>
<tr>
<td colspan="6">
<div id="campoPai">
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<th colspan="6" style="text-align: left;">
Meeting Date:
<input type="text" name="data_cad" id="cal-field-1" value="<%//if (prazo_rs!= null){%><%//=FormatadorDatas.formatoBrasil_sem_hora(prazo_rs)%><%//}%>" size="12" tabindex="1" />
<a href="#"><img src="../images/calendar.png" id="cal-button-1" border="0"></a>
<script type="text/javascript">
Calendar.setup({
inputField : "cal-field-1",
button : "cal-button-1",
align : "Br"
});
</script>
</th>
<!--<th>Apresentação:</th>
<td colspan="4">
<input name="link" type="text" id="link" tabindex="2" value="http://windchill.whirlpool.com/Windchill/servlet/TypeBasedIncludeServlet?ContainerOid=OR%3Awt.projmgmt.admin.Project2%3A151420150&oid=OR%3Awt.folder.SubFolder%3A151422061&u8=1&twoPane=true&tv.netmarkets.PJLfolderbrowser.tree=OR%3Acom.ptc.core.htmlcomp.tableview.TableViewDescriptor%3A66864" size="60" />
</td>-->
</tr>
<tr>
<th>Tecnology:</th>
<td colspan="6">
<select name="tecnologia" id="tecnologia" class="select" tabindex="3">
<option value=''></option>
<%
ResultSet rs_tec = null;
if(!grupoSession.equals("Administra")){
rs_tec = c.executeConsulta("select distinct(tecnologia) from tecnologia where" +retorno+" order by tecnologia");
}
else
{
rs_tec = c.executeConsulta("select distinct(tecnologia) from tecnologia order by tecnologia");
}
while(rs_tec.next())
{
%>
<option value="<%=rs_tec.getString("tecnologia")%>"><%=rs_tec.getString("tecnologia")%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<th width='293px'>Subject</th>
<th width='115px'>Type</th>
<th width='312px'>Presenter</th>
<th>Schedule</th>
<th>Duration</th>
</tr>
<tr>
<th>
<input type="text" id="assunto1" name="assunto1" size="40" onkeyup='combo_assunto(this.value,"1");' onkeydown='processReqChange_combo_assunto("1");' onclick='hide_ass("1");' /><br>
<div id="combo_assuntos1" style='display:none;' class='autocompleteAgeForm'></div>
</th>
<td>
<select name="tipo1" id="tipo1" tabindex="5">
<option></option>
<option value="Status">Status</option>
<option value="IST">IST</option>
<option value="CET">CET</option>
<option value="BET">BET</option>
<option value="PRM">PRM</option>
<option value="PAT">PAT</option>
</select>
</td>
<th>
<input type="text" id="apr1" name="apr1" size="47" onkeyup='combo_apres(this.value,"1");' onkeydown='processReqChange_combo_apres("1");' onclick='hide_users("1");'/><br>
<div id="combo_apres1" style='display:none;' class='autocompleteAgeForm'></div>
</th>
<td>
<input name="hora1" type="text" id="hora1" tabindex="7" size="2" maxlength="2" />:<input name="min1" type="text" id="min1" tabindex="7" size="2" maxlength="2" />
</td>
<td>
<input name="tempo1" type="text" id="tempo1" tabindex="8" size="3" maxlength="3" />
</td>
<td>
<input class=btnmain type="button" value="Add line" onclick="addCampos();" />
</td>
</tr>
</table>
</div>
<table cellSpacing=1 width="60%" align=center>
<tr>
<th colSpan="3"><INPUT tabIndex="9" type="checkbox" value="sim" id="comite" name="comite" >Committee</th>
<th colSpan="3"><INPUT tabIndex="10" type="checkbox" value="sim" id="apr" name="apr" >Presenters</th>
</tr>
<tr>
<th colSpan="3"><INPUT class=btnmain tabIndex="11" type="submit" value="Add Agenda" name="criarAgenda"></th>
<th colSpan="3"><INPUT class=btnmain tabIndex="12" type=button onclick="window.history.back(-2)" value="Cancel" name=btnCancelar></th>
</tr>
</table>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
2 coisas:
colocou o alert que falei? o que aparece?
meu nome é Felipe e não Fernando!
OOOppss!! Felipe me desculpe por trocar o seu nome… Eu estava conversando com um colega que se chama Fernando e acabei escrevendo o nome dele…
Coloquei o alert mas nem chegou a acionar, foi ignorado:
function valida_agenda(agenda)
{
var lastRow = qtdeCampos;
var i;
if ((agenda.data_cad.value=="")||(agenda.tecnologia.value==""))
{
window.alert ('Você precisa informar os dados para cadastro')
return false;
}
for (i=1; i<=lastRow; i++) {
var assunto = document.getElementById('assunto' + i);
if ( assunto.value.length <= 0) {
alert('O Campo Assunto ' + i + ' esta vazia');
return false;
}
var tipo = document.getElementById('tipo' + i);
if ( tipo.value.length <= 0) {
alert('O Campo Tipo ' + i + ' esta vazia');
return false;
}
var apr = document.getElementById('apr' + i);
if (apr.value.length <= 0) {
alert('O campo Apresentador ' + i + ' esta vazia');
return false;
}
var horario = document.getElementById('horario' + i);
if (horario.value.length <= 0) {
alert('O campo Horário ' + i + ' esta vazia');
return false;
}
var duracao = document.getElementById('duracao' + i);
if (duracao.value.length <= 0) {
alert('O campo Duração ' + i + ' esta vazia');
return false;
}
}
alert(agenda.comite.checked);
if (agenda.comite.checked != true && agenda.apr.checked != true){
if (confirm("You don't select the Committee or Presenters options, would you like to communicate them later?"))
return true;
}
return false;
}
cara… seguinte…
eu montei um html e peguei a parte dos checkbox e e validei na sua função… e funcionou…
[code]
head>
function valida_agenda(agenda)
{
alert("agenda: "+agenda.comite.checked);
if (agenda.comite.checked == false && agenda.apr.checked == false){
if (confirm("You don't select the Committee or Presenters options, would you like to communicate them later?"))
return true;
}
return false;
}
</script>
<title>Mili S.A.</title>
</head>
<form id="agenda" name="agenda" onsubmit="return valida_agenda(this);">
<table cellSpacing=1 width="60%" align=center>
<tr>
<th colSpan="3"><INPUT tabIndex="9" type="checkbox" value="sim" id="comite" name="comite" >Committee</th>
<th colSpan="3"><INPUT tabIndex="10" type="checkbox" value="sim" id="apr" name="apr" >Presenters</th>
</tr>
<tr>
<th colSpan="3"><INPUT class=btnmain tabIndex="11" type="submit" value="Add Agenda" name="criarAgenda"></th>
</tr>
</table>
</form>[/code]
então… acho que o erro esta antes de chegar nessa parte…
remove o código js e vai colocando if por if… ateh descobrir onde esta o erro…coloca uns alert para ver o valores…
outra coisa… não esta legal esses scriptless no seu código neh?! acessando o banco e tudo… sugiro dar uma revisada nisso…
Felipe, fiz os testes e o problema aparentemente está após executar o “FOR”, pois até aí tudo funcionando. Se eu pegar a parte de validação dos checkboxes e colocar no início antes do “FOR” aí funciona. Parece que executa o “FOR” e ignora o resto… Fiz o teste também colocando a validação dentro do “FOR” e funcionou, mas o problema é que vai ficar dentro do laço dos campos que contém id’s e vai se repetir o confirm a cada volta.
Não sei mais o que fazer, alguma outra dica?
function valida_agenda(agenda)
{
var lastRow = qtdeCampos;
var i;
if ((agenda.data_cad.value=="")||(agenda.tecnologia.value==""))
{
window.alert ('Você precisa informar os dados para cadastro')
return false;
}
for (i=1; i<=lastRow; i++) {
var assunto = document.getElementById('assunto' + i);
if ( assunto.value.length <= 0) {
alert('O Campo Assunto ' + i + ' esta vazia');
return false;
}
var tipo = document.getElementById('tipo' + i);
if ( tipo.value.length <= 0) {
alert('O Campo Tipo ' + i + ' esta vazia');
return false;
}
var apr = document.getElementById('apr' + i);
if (apr.value.length <= 0) {
alert('O campo Apresentador ' + i + ' esta vazia');
return false;
}
var horario = document.getElementById('horario' + i);
if (horario.value.length <= 0) {
alert('O campo Horário ' + i + ' esta vazia');
return false;
}
var duracao = document.getElementById('duracao' + i);
if (duracao.value.length <= 0) {
alert('O campo Duração ' + i + ' esta vazia');
return false;
}
}
Até aqui funciona o problema está nesta parte.
if (agenda.comite.checked == false && agenda.apr.checked == false){
if (confirm("You don't select the Committee or Presenters options, would you like to communicate them later?"))
return true;
}
return false;
}
cara… nessa linha no seu código:
<input type="text" id="assunto1" name="assunto1" size="40" onkeyup='combo_assunto(this.value,"1");' onkeydown='processReqChange_combo_assunto("1");' onclick='hide_ass("1");' /><br>
vc colocou name = assunto1, mas na parte que vc add as linhas esta name='assunto"+qtdeCampos+ , então acho que deve estar dando um conflito… manja…
tipo no seu for, vc faz document.getElementById, acho q por isso q rola o conflito…
[code]# var assunto = document.getElementById(‘assunto’ + i);
if ( assunto.value.length <= 0)[/code]
talvez se vc fazer document.getElementsByTagName(“assunto1”) ele retornará uma lista de elementos( acho q 2 elementos)… entende…