Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305

    Funzione su array di campi text

    Ciao, ho un form generato dinamicamente e devo controllare che almeno uno dei campi dell'array contenga un valore prima di essere spedito:
    if(document.richiesta.elements["qta[]"])
    {
    //-------------- controllo che sia settato almeno un campo
    var c=0;
    for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
    {
    if(document.richiesta.elements["qta[]"][i].value != "") { c++; }
    }

    if(c<1){
    alert("Inserire la quantità richiesta almeno per un articolo.");
    return false;
    }
    }


    Questo va benissimo su un array di due o più campi ma quando c'è un solo campo (qta) generato, anche se immetto un valore questo continua a chiedermi di inserire la quantità.
    Probabilmente perchè con un solo elemento il ciclo non compie neanche un "giro" ma come posso risolvere nel caso di un campo solo?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    function richiesta_onsubmit() 
    {
    	/*
    	if(document.richiesta.elements["qta[]"]) 
    	{
    		//-------------- controllo che sia settato almeno un campo
    		var c=0;
    		for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
    		{
    			if(document.richiesta.elements["qta[]"][i].value != "") { c++; }
    		}
    
    		if(c<1)
    		{
    			alert("Inserire la quantità richiesta almeno per un articolo.");
    			return false;
    		}
    	}
    	*/
    	for(var i = 0; i < document.richiesta.elements.length; i++)
    	{
    		var element = document.richiesta.elements[i];
    		if(element.type == "text" && element.name == "qta[]" && element.value != "")
    			return true;
    	}
    	alert("Inserire la quantità richiesta almeno per un articolo.");
    	return false;
    
    }
    Pietro

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    senza guardare tutti gli elementi del form puoi verificare se quel campo è una collezione o no
    codice:
    if(document.richiesta.elements["qta[]"]) 
    {
    //-------------- controllo che sia settato almeno un campo
    var c=0;
    if(document.richiesta.elements["qta[]"].length){
      for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
      {
        if(document.richiesta.elements["qta[]"][i].value != "") { c++; }
      }
    }else{
      if(document.richiesta.elements["qta[]"].value != "") { c++; }
    }
    if(c<1){
    alert("Inserire la quantità richiesta almeno per un articolo.");
    return false;
    }
    }

  4. #4
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Grazie mille ragazzi. ho risolto con il codice di willybit ma ringrazio entrambi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.