Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    annullare il click mouse su radiobutton

    Ho una table con una riga e tre colonne, ognuna delle quali contiene un input type radio. Nei radioButton non posso mettere codice javascript, ma lo posso fare nella tabella che li contiene
    codice:
    <form id="form1" name="form1">
    	Id pratica: <INPUT type="text" ID="id_pratica" NAME="id_pratica">
    	<table id="rbl_settore" onclick="if(self.rbl_settore_onclick)rbl_settore_onclick(this);" border="1"  language="javascript" >
    		<tr>
    			<td>
    				<input id="rbl_settore_0" type="radio" name="rbl_settore" value="c" tabindex="2" />
    				<label for="rbl_settore_0">Cave</label>
    			</td>
    			<td>
    				<input id="rbl_settore_1" type="radio" name="rbl_settore" value="m" checked="checked" tabindex="2" />
    				<label for="rbl_settore_1">Miniere</label>
    			</td>
    			<td>
    				<input id="rbl_settore_2" type="radio" name="rbl_settore" value="a" tabindex="2" />
    				<label for="rbl_settore_2">Altro</label>
    			</td>
    		</tr>
    	</table>		
    
    </form>
    ossia, nella tabella gestisco l'evento onclick in questo modo
    codice:
    function rbl_settore_onclick(v)
    {	var v_id = v.id;
    	var id = event.srcElement.id;
    	if(id.indexOf(v_id + "_", 0) == 0)
    	{
    		if(document.forms[0].id_pratica.value != "")
    		{
    			if( window.confirm("Attenzione, cambiando il settore di pertinenza, verrà cancellato il codice pratica\nProcedo?"))
    			{
    				document.forms[0].txt_id_pratica.value = "";
    				document.forms[0].id_pratica.value = "";
    			}
    			else
    			{
    				//return false;
    			}
    		}
    	}
    }
    ossia, se nel textbox id_pratica vi è scritto qualcosa, mando un avviso di conferma: se è confermato, cancello il suo contenuto altrimenti DOVREI RIPRISTINARE LA SITUAZIONE ORIGINALE DEI RADIOBUTTON, ossia dovrei annullare il click del mouse

    Non so se si posso fare, e io proprio non ci riesco

    Grazie
    Pietro

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Pietro,

    visto il sistema che hai usato potresti fare così
    codice:
    var radioPrima=''
    var bol=true
    function rbl_settore_onclick(v){
    	if(bol){
    		for(i=0;i<document.forms[0].rbl_settore.length;i++)
    			if(document.forms[0].rbl_settore[i].checked){
    				radioPrima=i
    				bol=false
    			}
    	}else bol=true
    	var v_id = v.id;
    	var id = event.srcElement.id;
    	if(id.indexOf(v_id + "_", 0) == 0)
    	{
    		if(document.forms[0].id_pratica.value != "")
    		{
    			if( window.confirm("Attenzione, cambiando il settore di pertinenza, verrà cancellato il codice pratica\nProcedo?"))
    			{
    				document.forms[0].txt_id_pratica.value = "";
    				document.forms[0].id_pratica.value = "";
    			}
    			else
    			{
    				document.forms[0].rbl_settore[radioPrima].checked=true
    			}
    		}
    	}
    }

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Bisogna che vada in pellegrinaggio a Padova, dal Santo, per Grazia ricevuta

    Ancora grazie
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sono mortificato, ma scusami se replico.
    codice:
    <html>
    	<head>
    		<title>a</title>
    		<script id="clientEventHandlersJS" language="javascript">
    <!--
    
    var radioPrima=''
    var bol=true
    function rbl_settore_onclick(v){
    	if(bol){
    		for(i=0;i<document.forms[0].rbl_settore.length;i++)
    			if(document.forms[0].rbl_settore[i].checked){
    				radioPrima=i
    				bol=false
    			}
    	}else bol=true
    	var v_id = v.id;
    	var id = event.srcElement.id;
    	if(id.indexOf(v_id + "_", 0) == 0)
    	{
    		if(document.forms[0].id_pratica.value != "")
    		{
    			if( window.confirm("Attenzione, cambiando il settore di pertinenza, verrà cancellato il codice pratica\nProcedo?"))
    			{
    				document.forms[0].id_pratica.value = "";
    			}
    			else
    			{
    				document.forms[0].rbl_settore[radioPrima].checked=true
    			}
    		}
    	}
    }
    
    //-->
    		</script>
    	</head>
    	<body MS_POSITIONING="FlowLayout">
    		<form id="form1" name="form1">
    			Id pratica: <INPUT type="text" ID="id_pratica" NAME="id_pratica">
    			<table id="rbl_settore" onclick="if(self.rbl_settore_onclick)rbl_settore_onclick(this);"
    				border="1" language="javascript">
    				<tr>
    					<td>
    						<input id="rbl_settore_0" type="radio" name="rbl_settore" value="c" tabindex="2" />
    						<label for="rbl_settore_0">Cave</label>
    					</td>
    					<td>
    						<input id="rbl_settore_1" type="radio" name="rbl_settore" value="m" checked="checked" tabindex="2" />
    						<label for="rbl_settore_1">Miniere</label>
    					</td>
    					<td>
    						<input id="rbl_settore_2" type="radio" name="rbl_settore" value="a" tabindex="2" />
    						<label for="rbl_settore_2">Altro</label>
    					</td>
    				</tr>
    			</table>
    		</form>
    	</body>
    </html>
    Premesso che è un metodo che non mi piace mettere l'evento nella tabella contenitrice dei radiobutton, ma sono costretto, mi sembra che non funzioni. In altre parole, se clicco sulla label, funziona, ma se clicco direttamente sul radio, non ripristina correttamente lo stato iniziale, se la risposta è negativa

    Ciao
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    credo di avere risolto. Ho utilizzato la tua idea di tenere traccia del radio selezionato e faccio uso di funzioni che ho preso nel forum qualche tempo fa, magari col tuo aiuto.

    codice:
    <html>
    	<head>
    		<title>a</title>
    		<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    		<script src="/sitae/libreria.js"></script>
    		<script id="clientEventHandlersJS" language="javascript">
    <!--
    
    var radioPrima = '';
    function rbl_settore_onclick(v)
    {	
    	var v_id = v.id;
    	var id = event.srcElement.id;
    	if(id.indexOf(v_id + "_", 0) == 0)
    	{
    		if(document.forms[0].id_pratica.value != "" && radioPrima != '')
    		{
    			if( window.confirm("Attenzione, cambiando il settore di pertinenza, verrà cancellato il codice pratica\nProcedo?"))
    			{
    				//document.forms[0].txt_id_pratica.value = "";
    				document.forms[0].id_pratica.value = "";
    			}
    			else
    			{
    				if(radioPrima != '')
    					document.forms[0].rbl_settore[radioPrima].checked = true;
    				else
    					seleziona_deseleziona(true, document.forms[0], "rbl_settore");
    			}
    			
    		}
    	}
    	radioPrima = indice_radiobutton_selezionato(document.forms[0].rbl_settore);
    }
    
    //-->
    		</script>
    	</head>
    	<body MS_POSITIONING="FlowLayout">
    		<form id="form1" name="form1">
    			Id pratica: <INPUT type="text" ID="id_pratica" NAME="id_pratica">
    			<table id="rbl_settore" onclick="if(self.rbl_settore_onclick)rbl_settore_onclick(this);"
    				border="1" language="javascript">
    				<tr>
    					<td>
    						<input id="rbl_settore_0" type="radio" name="rbl_settore" value="c" tabindex="2" />
    						<label for="rbl_settore_0">Cave</label>
    					</td>
    					<td>
    						<input id="rbl_settore_1" type="radio" name="rbl_settore" value="m" tabindex="2" />
    						<label for="rbl_settore_1">Miniere</label>
    					</td>
    					<td>
    						<input id="rbl_settore_2" type="radio" name="rbl_settore" value="a" tabindex="2" />
    						<label for="rbl_settore_2">Altro</label>
    					</td>
    				</tr>
    			</table>
    		</form>
    	</body>
    </html>
    Pietro

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.