Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Validare textbox array cu javascript?!?!?[REZOLVAT]
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS
Subiectul anterior :: Subiectul următor  
Autor Mesaj
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Mie Mar 05, 2008 8:04 am    Titlul subiectului: Validare textbox array cu javascript?!?!?[REZOLVAT]  

Am urmatoare forma :

<form action="" name="comand" method="post" onsubmit="return validate()">
<input type='hidden' name='nr_comenzi' id="nr_comenzi" value="<?=$nrows?> "/>
<?
for ($i = 0; $i < $nrows; $i++ ) {
?>
<tr>
<td rowspan="2"><?=$results["NR"][$i]?></td>
<td rowspan="2"><?=$results["NRCOMANDA"][$i]?></td>
<td rowspan="2" align="center"><input size="2" maxlength="2" type="text" name="gest_<?=$i?>" id="gest_<?=$i?>" value="" /></td>
<td rowspan="2" align="center">
<input type="checkbox" name="check_<?=$i?>" />
</tr>
<?
}
?>
<tr>
<td><input type="submit" name="dat" value="Trimite" />
</td>
</tr>
</form>
<?


As vrea ca atunci cand apas pe trimite sa verifice daca gest_$i este completata (cu js)
Am incercat asa dar nu stiu ce nu-i in regula :

function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}
//var curdate = new Date()
//var year = curdate.getYear()



function validate_form(thisform)
{
with (thisform){
var nr_comenzi = document.getElementById('nr_comenzi').value;
for( i =0; i < nr_comenzi; i++)
{ var gest=document.getElementById('gest_'+i);
var valoare = document.getElementById('gest_'+i).value;
if (validate_required(gest,"Te rog sa completezi gestiunea!")==false ){gest.focus();return false}
}
}
}
Mentionez ca nu-mi afiseaza nicio eroare , pur si simplu drece peste buton!
Va rog sa-mi dati o idee .Multumesc!
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 595
Locație: Drobeta Turnu Severin

Trimis: Mie Mar 05, 2008 6:24 pm    Titlul subiectului:  

Nu m-am uitat prea atent dar aici
<form action="" name="comand" method="post" onsubmit="return validate()">
nu trebuie :
<form action="" name="comand" method="post" onsubmit="return validate_form(this)">
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Mie Mar 05, 2008 7:23 pm    Titlul subiectului:  

Da .. am uitat sa schimb numele la functie aici .. dar nu e asta problema :(
si nici erori nu da ... trebuie sa finalizez aplicatia cat mai rpd si nu pot din
aceasta cauza ...
Sus  
griffin



Data înscrierii: 07/Dec/2006
Mesaje: 84

Trimis: Mie Mar 05, 2008 9:04 pm    Titlul subiectului:  

<input size="2" maxlength="2" type="text" name="gest_<?=$i?>" id="gest_<?=$i?>" value="" />
asta ar trebui sa arate ceva de genul (pentru i=1)
<input size="2" maxlength="2" type="text" name="gest_1>" id="gest_1" value="" />

Eu as face asa:
function validate(alertTxt){
ref=document.command.getElementByTagName('input');
n=ref.length;

for(i=0; i<n; i++){
if(ref[i].type=='text'){
if(ref[i].value=='')
alert(alertTxt);
}
}
}
Ce faci aici:
preiei in ref toate inputurile si caut inputurile de tip text si vezi daca sunt completate (ref[i].type=='text').Daca vrei sa verifici checkbox doar pui in loc de ref[i].type=='text' ,ref[i].type=='checkbox'.Daca vrei sa afli exact pentru inputurile cu nume ca "gest_" poti sa schimbi for-ul cu ceva de genul:

for(i=0; i<n; i++){
x=ref[i].name;
if(x.substring(0,5)=="gest_"){
if(ref[i].value=='')
alert(alertTxt);
}
}
Sper sa-ti fie de folos
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Mie Mar 05, 2008 9:22 pm    Titlul subiectului:  

Multumesc foarte mult ! Abia astept sa ajung maine la " scarbici" :lol: sa testez ! Oricum voi anunta rezultatul .
Sus  
griffin



Data înscrierii: 07/Dec/2006
Mesaje: 84

Trimis: Mie Mar 05, 2008 9:53 pm    Titlul subiectului:  

Uite aici un exemplu complet (l-am testat si daca nu completezi iti da alert)

<html>
<head>
<script type="text/javascript">
function validate(txt){
ref=document.command.getElementsByTagName("input");
n=ref.length;

for(i=0; i<n; i++){
nume=ref[i].name;
if(nume.substring(0,5)=="gest_"){
if(ref[i].value=="")
alert("campul e gol "+nume);
}
}

}
</script>
</head>
<body>
<form name="command" action="" method="post">
<table>
<tr><td>Input 1</td><td><input type="text" name="gest_1"></td></tr>
<tr><td>Input 2</td><td><input type="text" name="gest_2"></td></tr>
<tr><td>Checkbox 1</td><td><input type="checkbox" name="check_1"></td></tr>
<tr><td>Input 3</td><td><input type="text" name="gest_3"></td></tr>
<tr><td>Input 4</td><td><input type="text" name="gest_4"></td></tr>
<tr><td>Checkbox 2</td><td><input type="checkbox" name="check_2"></td></tr>
<tr><td>Input 5</td><td><input type="text" name="gest_5"></td></tr>
<tr><td colspan='2'><input type='button' name="button" value='validate' onclick="validate();"></td></tr>
</table>
</form>
</body>
</html>
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Joi Mar 06, 2008 9:39 am    Titlul subiectului:  

Mersi mult ! Merge ... dar ar mai fi o probl .. sa le verifice doar pe cele ptr care chekbox-urile aferente(adica check_<?i?> ) sunt selectate ( checked). Am incercat in fel si chip .. dar ceva imi scapa .. recunosc ca nu prea m-am jucat cu js -urile pana acum.. :oops:
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Joi Mar 06, 2008 10:01 am    Titlul subiectului:  

Mersi mult ! Merge ... dar ar mai fi o probl .. sa le verifice doar pe cele ptr care chekbox-urile aferente(adica check_<?i?> ) sunt selectate ( checked). Am incercat in fel si chip .. dar ceva imi scapa .. recunosc ca nu prea m-am jucat cu js -urile pana acum.. :oops:
Sus  
griffin



Data înscrierii: 07/Dec/2006
Mesaje: 84

Trimis: Joi Mar 06, 2008 11:13 am    Titlul subiectului:  

function validate(txt){
ref=document.command.getElementsByTagName("input");
n=ref.length;

for(i=0; i<n; i++){
nume=ref[i].name;
if(nume.substring(0,5)=="gest_"){
if(ref[i].type=="checkbox" && ref[i].checked==true)
if(ref[i].value=="")
alert("campul e gol "+nume);
}
}

Uite asta e ce-ti trebuie (adauga asta ca mai sus)
if(ref[i].type=="checkbox" && ref[i].checked==true)
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Joi Mar 06, 2008 12:59 pm    Titlul subiectului:  

:lol: am incercat si eu asa .. dar cum crezi ca intra in if(ref[i].type=="checkbox" && ref[i].checked==true)
daca ref[i].name.substring(0,5)=='gest_'?
type n-o sa fie niciodata in cazul asta checkbox:((


Am incercat si-n alte feluri dar datorita faptului ca merge pana la nr de taguri de tip input
nu stiu cum sa asociez inputului de tip text pe cel de tip checkbox aferent.. nu stiu daca-am fost destul de explicita ..

M-am mai gandit .. daca se merge pana la nr de inreg returnate din tabela atunci ptr gest_1 de exemplu checkboxul coresp este check_1
adica as putea face o verificare dupa i .. si-as putea spune ca gest_i.value= "" && check_i . checked ..
dar din pacate asta e doar teoretic ptr ca nu stiu cum s-o implementez
Sus  
griffin



Data înscrierii: 07/Dec/2006
Mesaje: 84

Trimis: Joi Mar 06, 2008 1:36 pm    Titlul subiectului:  

Face ceea ce vrei.Spor
<html>
<head>
<script type="text/javascript">
function validate(txt){
ref=document.command.getElementsByTagName("input");
n=ref.length;

for(i=0; i<n; i++){
if(ref[i].type=="checkbox" && ref[i].checked==true){
alert("checked "+ref[i].name);
nume=ref[i+1].name;
if(nume.substring(0,5)=="gest_"){
if(ref[i+1].value=="")
alert("campul e gol "+nume);
}
}
}
}
</script>
</head>
<body>
<form name="command" action="" method="post">
<table>
<tr><td>Check 1</td><td><input type="checkbox" name="check_1"></td></tr>
<tr><td>Input 1</td><td><input type="text" name="gest_1"></td></tr>
<tr><td>Check 2</td><td><input type="checkbox" name="check_2"></td></tr>
<tr><td>Input 2</td><td><input type="text" name="gest_2"></td></tr>
<tr><td>Check 3 </td><td><input type="checkbox" name="check_3"></td></tr>
<tr><td>Input 3</td><td><input type="text" name="gest_3"></td></tr>
<tr><td>Check 4</td><td><input type="checkbox" name="check_4"></td></tr>
<tr><td>Input 4</td><td><input type="text" name="gest_4"></td></tr>
<tr><td>Checkbox 5</td><td><input type="checkbox" name="check_5"></td></tr>
<tr><td>Input 5</td><td><input type="text" name="gest_5"></td></tr>
<tr><td colspan='2'><input type='button' name="button" value='validate' onclick="validate();"></td></tr>
</table>
</form>
</body>
</html>
Sus  
lilutz



Data înscrierii: 31/Oct/2007
Mesaje: 10

Trimis: Joi Mar 06, 2008 1:44 pm    Titlul subiectului:  

L-am facut ! Oricum nu m-as fi descurcat fara ideea ta :

function validate(txt){

ref=document.getElementsByTagName("input");
n=ref.length;

for(i=0; i<n-1; i++) {
j=i+1;
nume=ref[i].name;
nume1=ref[j].name;

if(nume.substring(0,5)=="gest_" && ref[j].type=="checkbox"){

if(ref[j].checked==true)
if(ref[i].value=="")
alert("campul e gol "+nume);
}
} }
Multumesc mult!
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community