PDA

Visualizza la versione completa : [JSP] checkbox


userfra
02-07-2002, 14:39
Io ho un resultset e rs.movenext

in questo modo tiro fuori i record che ho memorizzati in una tabella!

Fin qui tutto ok, poi ho inserito un checkbox, che naturalmente me le ripete quanti sono i record presenti nella tabella, quello che vorrei fare è mettere un controllo, del tipo almeno uno deve essere selezionato!

Io ho provato a fare così ma non funziona, perché?

<script language="JavaScript">
<!--
function checkData() {

if(document.form.check1.checked == false && document.form.check2.checked == false && document.form.check3.checked == false)
{
// sono tutti e tre non checckati
alert("devi checckare alemeno un checkbox");
return false;
}
else
{
// uno o più checkbox sono checckati
return true;
}
}

//-->
</script>

..
..
<%
..
..
while(rs.next()){
%>
<form name="form" method="post" action="javascript:finestra('pop.jsp')" onSubmit="return checkData()">

<input type="checkbox" name="check1" value="ON">

..
..

floyd
02-07-2002, 14:47
non mettere form come nome, è riservato
forma migliore
if(!document.form1.check1.checked && !document.form1.check2.checked && !document.form1.check3.checked)

userfra
02-07-2002, 14:57
il problema è che il nome del check è solo uno, perché gli altri si ripetono

floyd
02-07-2002, 15:43
int i=1;
while(rs.next()){
%>
<form name="form1" method="post" action="javascript:finestra('pop.jsp')" onSubmit="return checkData()">

<input type="checkbox" name="check<%=i++;%>" value="ON">
prova così

userfra
02-07-2002, 15:51
ok, ora provo.

Come faccio a inviare nel form l'id della riga "checkata"

floyd
02-07-2002, 16:09
l'id della riga :confused:

userfra
02-07-2002, 16:15
Ok, per quanto riguarda il numero dei checkbox e ok, solo che non va la funzione checkData!

Vedrò cosa potrò fare!


Si praticamente io visualizzo i record memorizzati su una tabella, con a fianco un checkbox (uno per ogni record).

Quello che vorrei fare e per esempio checcarne uno e poi inviare il form!

Tipo quello che viene utilizzato da hotmail o anche da io per eliminare un'email!

floyd
02-07-2002, 16:34
secondo me dovresti trovare un modo senza action del form, per esempio una funzione che fa i controlli e cambia la location con i parametri dopo il ? e separati con & scelti dalla stessa funzione
buon lavoro :adhone:

userfra
02-07-2002, 16:36
in questo modo il check funziona solo, che non mi invia l'ID giusto
perché

<script language="JavaScript">
<!--
function checkData() {

if(!document.form1.check1.checked && !document.form1.check2.checked && !document.form1.check3.checked && !document.form1.check4.checked && !document.form1.check5.checked)
{
// sono tutti e tre non checckati
alert("devi checckare alemeno un checkbox");
return false;
}
else
{
// uno o più checkbox sono checckati
return true;
}
}

//-->
</script>

</head>
<body>

<%
//Dichiariamo l'oggetto Connection

Statement st = con.createStatement();
%>
<table>
<tr>
<%
String query="";
query="select * from tab";
ResultSet rs = st.executeQuery (query);
int i=1;
while(rs.next()){
String nome = rs.getString(5);

%>

</tr>
<tr>

<form name="form1" method="post" action="javascript:finestra('pop.jsp?ID=<%=rs.getString(1)%>')" onSubmit="return checkData()">
<td>

<input type="checkbox" name="check<%=i++%>" value="ON"><%out.println(nome);%>



<font size="1">
</font>
</td>
<td>

<%
}
%>
</td>
</tr>

<%
}
%>
<input type="submit" value="Ok" class=y onmouseover="this.className='x'" onmouseout="this.className='y'" onFocus="this.blur()">
</form>
</table>

floyd
02-07-2002, 17:12
non hai scritto la funzione finestra

Loading