2013-05-16 7 views
1

я следующий HTML -JavaScript не сравнивая значение параметра передается

<input type="Radio" name="radio2text" value="Radiobutton1" 
onclick="javascript:radioWithText('one')" checked="checked" />OneRadio<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('two')" unchecked />TwoRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('three')" unchecked />ThreeRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('four')" unchecked />FourRadio 

и также это

<span id="one" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="two" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="three" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="four" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 

Это производит 4 небольшую ширину квадрат в белом на моем фоне цвет зеленый. Эти четыре квадрата показаны, и я хочу изменить их цвет фона вне курса, чтобы быть красным, когда выбран конкретный переключатель. Для этого shake я передаю параметр с javascript javascript:radioWithText('one'). Как вы видите, функция передается параметром ok! Далее нужно сделать javascript с функцией, которую я назвал.

function radioWithText(d) { 
    alert(d); 
    if (d.val=='one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 

Вы можете увидеть, вероятно, когда переключатель проверяется его предупредит значение передаваемого (кнопку, которая выбрана). В предупреждении он показывает "one""two""three""four" при том же значении, которое находится при первой радиокнопке, проходит "one" при сравнении, не сравнивая, что может быть причиной? выручи меня!
Отчаянно глупые ошибка заранее спасибо

+2

Там нет необходимости ставить 'JavaScript:' в инлайн обработчиков событий. – Martijn

+0

Почему вы предупреждаете 'd', но сравниваете' d.val'? Если 'd' является строкой, вы должны сравнивать' d'; если это элемент формы, вы хотите сравнить «d.value». – apsillers

ответ

1

Сначала удалите javascript: из встроенных событий:

<input type="Radio" name="radio2text" value="Radiobutton1" 
onclick="radioWithText('one')" checked="checked" />OneRadio<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('two')" unchecked />TwoRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('three')" unchecked />ThreeRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('four')" unchecked />FourRadio 

Во-вторых, вы передаете строку в вашу функцию, поэтому нет .val собственности. Снимите это:

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
+0

спасибо за помощь – Badrinath

1

Удалить .val. Ваш параметр является строкой, то есть не .val

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
1

Переменная d не имеет значение, которое нужно сравнить. У него нет свойства с именем val.

Сравнение линия должна быть:

if (d === 'one') 
0

Нет Вал нужен.

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
0

Вам не нужен d.val

Переменная d равно 'one'.

function radioWithText(d) { 
alert(d); 
if (d=='one') 
{ 
    var one = document.getElementById('one'); 
    //one.checked = true; 
    one.style.background="red"; 
    } 
} 

Кроме того, нет необходимости в javascript: в ваших onclick событий. onclick maps непосредственно на javascript, в отличие от a элементов.

Fiddle here.

Смежные вопросы