Ciao a tutti.
Ho uno strano problema con del codice misto ASP/javascript.
Questo è il codice:
codice:
<script language="javascript" type="text/javascript">
<!--
function uncheckAllExceptThis(input) {
var table = input.parentNode,
els,
el,
i;
while (table.nodeName !== 'TABLE' && table.nodeName !== 'BODY') {
table = table.parentNode;
}
if (table.nodeName === 'BODY') {
return;
}
els = table.getElementsByTagName('input');
for (i = 0; i < els.length; i += 1) {
el = els[i];
if (el.type === 'checkbox' && el !== input) {
//console.log(el.checked);
el.checked = false;
updateRowColour(el);
}
}
}
function updateRowColour(input) {
var checked = '';
if (input.checked) {
checked = 'checked';
} else {
input.checked = null;
}
input.parentNode.parentNode.className = checked;
}
//-->
</script>
<td align=center><input type=checkbox name=C1 value=ON></td>
<script type="text/javascript">
var list = document.getElementById('someList');
list.onclick = function (evt) {
evt = evt || window.event;
var targ = evt.target || evt.srcElement;
if (!(targ && targ.nodeName && targ.nodeName === 'INPUT' && targ.type === 'checkbox')) {
return;
}
uncheckAllExceptThis(targ);
updateRowColour(targ);
if (targ.checked) {
var w = 1000
var h = 400
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
window.open ('somePage.asp?sID=32', '', 'location=no, directories=no, status=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
};
</script>
<td align=center><input type=checkbox name=C1 value=ON></td>
<script type="text/javascript">
var list = document.getElementById('someList');
list.onclick = function (evt) {
evt = evt || window.event;
var targ = evt.target || evt.srcElement;
if (!(targ && targ.nodeName && targ.nodeName === 'INPUT' && targ.type === 'checkbox')) {
return;
}
uncheckAllExceptThis(targ);
updateRowColour(targ);
if (targ.checked) {
var w = 1000
var h = 400
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
window.open ('somePage.asp?sID=7', '', 'location=no, directories=no, status=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
};
</script>
...e via dicendo.... sino all' ID 28:
codice:
<td align=center><input type=checkbox name=C1 value=ON></td>
<script type="text/javascript">
var list = document.getElementById('someList');
list.onclick = function (evt) {
evt = evt || window.event;
var targ = evt.target || evt.srcElement;
if (!(targ && targ.nodeName && targ.nodeName === 'INPUT' && targ.type === 'checkbox')) {
return;
}
uncheckAllExceptThis(targ);
updateRowColour(targ);
if (targ.checked) {
var w = 1000
var h = 400
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
window.open ('somePage.asp?sID=28', '', 'location=no, directories=no, status=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
};
Come vedete ad ogni checkbox è associata l'apertura di una window open che richiama la pagina ASP somepage.asp ed in querystring gli passo l'ID ottenuto con una query lato server.
Il problema è che su qualsiasi checkbox clicco la somepage.asp processa sempre l' ID numero 28 che è l'ultimo dei checkbox.
Perchè si comporta così?
Grazie