2013-08-08 5 views
1

Im a DOM/javascript новичок, который пытается получить мои основы правильно. Я просто пытаюсь наблюдать за поведением переключателя при нажатии на него. Вот мой код.Поведение радио кнопки

HTML

<script src="tmp.js"></script> 
    <input type="radio" id="inp1" name="same" onclick="show();"/> 
    <input type="radio" id="inp2" name="same" onclick="show();"/> 

JS (tmp.js)

function show() { 
     alert(document.getElementById("inp1").value + " " + document.getElementById("inp2").value); 
    } 

Что меня смущает, что на запуск окно предупреждения говорит "на на" щелкать одну из кнопок. Разве это не должно быть «выключено» или «выключено»?

+1

Там нет значения – Esailija

ответ

1

Похоже, что вы хотите, чтобы получить это checked собственность, имеют вид:

function show() { 
     alert(document.getElementById("inp1").checked + " " + 
       document.getElementById("inp2").checked); 
    } 

Рабочий пример: http://jsfiddle.net/w7vGL/

3

Нет, это не должно быть. Значение - это то, что вы указываете в атрибуте value (и по умолчанию используется 'on' для переключателей, если вы не можете его предоставить).

Поскольку только проверенный переключатель может быть успешным и отправлен на сервер, изменение значения не требуется (данные просто не будут включены при отправке формы).

Проверяемое состояние сохраняется в свойстве checked, и вы можете использовать его из JavaScript, чтобы определить, какой радиокнопка находится в данный момент.

0

Вы должны использовать свойство checked, значение определяет только то, что находится внутри, когда отмечено.

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>test</title> 
<script type="text/javascript"> 
    function show() { 
     alert(document.getElementById("inp1").checked + " " + document.getElementById("inp2").checked); 
    } 
</script> 
</head> 
<body> 
<input type="radio" id="inp1" name="same" onclick="show();"/> 
<input type="radio" id="inp2" name="same" onclick="show();"/> 
</body> 
</html> 
0

Используйте checked вместо этого, но имейте в виду, что это даст вам логическое значение, поэтому следующий код будет делать то, что вам нужно:

function show() { 
    alert(document.getElementById("inp1").checked ? 'on' : 'off' 
+ " " + document.getElementById("inp2").checked ? 'on' : 'off' 
    ); 
}