Newsgroup: it.comp.lang.javascript
Titolo: Form con input dinamici, problema cross-browser

Salve, oggi vi pongo un'altro quesito dato che non riesco a venirne a
capo su come rendere cross-browser questo script che ho appena finito
di scrivere in javascript e che funziona perfettamente su IE 7.0, ma
non su FireFox.
Il codice è sotto allegato, ecco come dovrebbe funzionare il tutto:
L'utente inserisce alcuni dati sul form HTML e questi vengono
"processati" dalle funzioni javascript per poi creare nuovi input
hidden da inviare al server esterno (l'url e i postdata come potete
vedere sono passati tra le varie funzioni). Ecco il problema adesso è
che su IE 7.0 vengono inviati tutti i dati, sia quelli inseriti sul
form principale dall'utente sia quelli creati dinamicamente con la
funziona updateForm, mentre su FF vengono inviati tramite POST solo
quelli del FORM originario (come se i campi hidden non fossero stati
creati; ho provato a fare un alert(hidden_inputs_div.innerHTML ed è
tutto OK, i campi vengono creati!!!). Sono nuovo in javascript e
sicuramente qualcuno mi saprà aiutare. ;)
Grazie come sempre in anticipo.
<script type="text/javascript" language="javascript">
var num = 0;
function updateForm(url, post_data) {
var frm = document.forms['autovote'];
var hidden_inputs_div = document.getElementById('hidden_inputs');
frm.action=url;
hidden_inputs_div.innerHTML = "";
for( var monitor_subkey in post_data) {
hidden_inputs_div.innerHTML = hidden_inputs_div.innerHTML+"<input type=
\"hidden\" name=\""+monitor_subkey+"\" value=
\""+post_data[monitor_subkey]+"\">"; }
}
function doVote() {
var frm = document.forms['autovote'];
monitor_data = new Object();
monitor_data['
http://xxx.com/rate.php?id=1856
'] = new Object();
monitor_data['
http://xxx.com/rate.php?id=1856']['id
'] = 1856;
monitor_data['
http://xxx.com/rate.php?id=1856']['a
'] = 'add';
monitor_data['
http://xxx.com/rate.php?id=1856']['rate
'] = 4;
monitor_data['
http://www.xxx2.com/system/ratenow.php?id=lighthalzen
']
= new Object();
monitor_data['
http://www.xxx2.com/system/ratenow.php?id=lighthalzen
']
['md5_code'] = 'a4s213zppsq845';
monitor_data['
http://www.xxx2.com/system/ratenow.php?id=lighthalzen
']
['do'] = 'rate';
monitor_data['
http://www.xx2.com/system/ratenow.php?id=lighthalzen
']
['r_name'] = frm.user_name.value;
for( var monitor_key in monitor_data ) {
num += 1;
var vote_window = 'autovote_'+num;
frm.target = vote_window;
updateForm(monitor_key, monitor_data[monitor_key]);
window.open('', vote_window,
'toolbar=no,directories=no,scrollbars=yes,menubar=no,width=650,height=450,resizable=yes');
frm.submit();
}
}
</script>
</head>
<body>
<div align="center">
<table>
<form id="autovote" method="post" action="url" target="popup">
<div id="hidden_inputs" style="display:none;">hidden fields</div>
  <tr>
    <td align="center">
	 <input type="radio" name="rate" value="very_bad"><br>Very Bad
	</td>
	<td align="center">
	 <input type="radio" name="rate" value="bad"><br>Bad
	</td>
	<td align="center">
	 <input type="radio" name="rate" value="good"><br>Good
	</td>
	<td align="center">
	 <input type="radio" name="rate" value="very_good" checked><br>Very
Good
	</td>
  </tr>
  <tr>
    <td colspan="4">
     <div style="margin-bottom:10px">
	  Your Name<br><input type="text" name="user_name">
     </div>
     <div style="margin-bottom:10px">
	  Comment (max. 100 chars)<br><input type="text" name="comment"
size="60" maxlength="100">
     </div>
	 <div>
	  Your e-mail
	    <input type="text" name="mail">
	 </div>
	 <div align="center"><br>
	   <input type="button" value="Auto-Vote" onclick="doVote()">
	 </div>
	  </td>
	</tr>
</form>
</table>
</div>

 <form id="autovote" method="post" action="url" target="popup">
qua manca il name...
questo è a naso sicuramente un problema, comincia col sistemarlo.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.


wrote:

Grazie comunque per l'aiuto, ho già sistemato con una via
alternativa. ;)
Gotenks