js и radio

RUNET

Новичок
js и radio

столкнулся с проблемкой
есть radio кнопка
может быть одна, а может быть две (не суть)

задача, при клике по кнопке отливить её состояние
результат epic fail ...

PHP:
function check(str)
{
   alert(str.checked); // всегда true :(
}
<input type="radio" name="radio" value="1" onclick="check(this);">

вот собсно, если у radio значение false, то как его отловить ?
а то получается оно сначало ставит checked = true и только потом мне сообщает о своем состоянии...

хотел изобразить что-то вроде
PHP:
str.checked = (str.checked === true) ? false : true;
 

StiM

Новичок
Может так пойдет:

<input type="radio" name="radio" id="myradio" value="1" onclick="check();">

function check()
{
var i = document.getElementById('myradio');

if (i.cheched) alert("YES");
else (i.cheched) alert("NO");
}

-~{}~ 17.11.09 20:33:

P.S. если речь идет о radio, то наверное целесообразней использовать событие onchange().
 

StiM

Новичок
Автор оригинала: RUNET
ты сначала пробуй то что пишешь ... ога
Вот тебе рабочий код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- MAIN PAGE TEMPLATE -->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>11</title>

</head>
<body>


<script>
function check()
{
var i = document.getElementById('myradio');

if (i.checked) alert("YES");
else alert("NO");
}
</script>

<input type="radio" name="radio" id="myradio" value="1" onclick="check();">

</body>
</html>
 

RUNET

Новичок
ладно, представим что ты таки гуру.
1) делаю копи паст
2) сохраняю
3) открываю страничку
4) клик
5) alert('YES');
6) что я делаю не так ? :)
бгы ...
 

StiM

Новичок
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- MAIN PAGE TEMPLATE -->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>11</title>

</head>
<body>


<script>
var status = false;

function focus()
{
var i = document.getElementById('myradio');

status = i.checked;

}

function check()
{
var i = document.getElementById('myradio');

alert(status);

if (status) i.checked = false;
else i.checked = true;

status = i.checked;

}
</script>

<input type="radio" name="radio" id="myradio" value="1" onclick="check();" onfocus="focus();">

</body>
</html>
 

RUNET

Новичок
ммм...
а что с клиентом будет если так "переменных" будет около ста ?
вида status[id]

хотя наверное ниче ...
я об этом думал, но хотелось изящнее ... видимо не судьба =/
 

StiM

Новичок
Автор оригинала: RUNET
ммм...
а что с клиентом будет если так "переменных" будет около ста ?
вида status[id]

хотя наверное ниче ...
я об этом думал, но хотелось изящнее ... видимо не судьба =/
С клиентом ничего не будет. А status[id] - это массив, пихай туда хоть двести значений.
 
Сверху