2011-12-29 4 views
0
<input type="radio" value="0" name="type" checked="yes" /> 
<label>Type 0</label> 
<input type="radio" value="1" name="type" /> 
<label>Type 1</label> 

и ЯШ:Как получить значение из формы ввода типа = радио?

var type = this.type.value; 
alert(type); 

Как это исправить?

+3

'yes' не является допустимым значением для' checked' атрибута, я думаю, что вы имеете в виду 'checked'. – Quentin

ответ

5

В каком контексте это делает JS код запуска? Если является радиокнопкой, то this.value вернет значение.

Если ваш вопрос: «Как получить значение выбранного в данный момент радиокнопки в группе« Тип »?» то вам может понадобиться, чтобы сделать что-то вроде этого:

function getCheckedRadioValue(radioGroupName) { 
    var rads = document.getElementsByName(radioGroupName), 
     i; 
    for (i=0; i < rads.length; i++) 
     if (rads[i].checked) 
      return rads[i].value; 
    return null; // or undefined, or your preferred default for none checked 
} 

var checkedValue = getCheckedRadioValue("type"); 

(Было бы проще с .querySelector() или .querySelectorAll(), но не все браузеры поддерживают их.)

1

Просто используйте this.value вместо this.type.value.

this.value будет выбирать значение, связанное с атрибутом value ввода. (Это глоток).

-1

Использование JQuery вы можете сделать, как это

$(function() { 
     $(".rad").click(
     function() { 
      alert(this.value); 
     }); 
    }); 

Смотрите эту JSFiddle

+1

Я не проголосовал, но эта скрипка даже не работает. Вам нужно либо '$ (this) .val()' или, лучше, 'this.value', но в любом случае ваш код нуждается в jQuery, о котором нет упоминания в вопросе. – nnnnnn

0

Просто используйте селекторы.

С JQuery

$("input[name=type]:checked").val(); 

Или без JQuery:

document.querySelector("input[name=type]:checked").value; 
Смежные вопросы