Проблемы с переключателем JavaScript

Мне нужно сделать библиотеку изображений из 5 изображений. Изображения должны быть выбраны и показаны по одному через разные переключатели. Кнопки отправки запрещены. Поэтому до сих пор я писал код для вывода изображения по имени изображения. Номер по умолчанию: 0 = первое изображение. Но проблема в том, что когда я нажимаю на другой переключатель, моя функция не выводит новый номер и не делает радио проверенным = "проверено".

Моя функция:

function radiocheck()
{
    for (var i=0; i < 5; i++)
    {
        if (document.forms[1].elements[i].checked=="true")
        {
            var whichISchecked = document.forms[1].elements[i].value;

            for (var z=0; z<i; z++)
            {
                document.forms[1].elements[z].checked="unchecked";
            }
            for (var z=i; z<5; z++)
            {
                document.forms[1].elements[z].checked="unchecked";
            }
        }
        else 
        {   
            document.forms[1].elements[0].checked="checked";
            var whichISchecked = document.forms[1].elements[0].value;
        }
    }
    return whichISchecked;
}

person helpmepls    schedule 01.05.2012    source источник


Ответы (3)


Радиокнопки должны сами обрабатывать пометку и снятие пометки. Рассмотрим этот код (также на http://jsfiddle.net/87wkC/1/)

<form id="f">
<input type="radio" value="1" onclick="getValue(this.value)" name="field1">A<br>
<input type="radio" value="2" onclick="getValue(this.value)" name="field1">B<br>
<input type="radio" value="3" onclick="getValue(this.value)" name="field1">C<br>
<input type="radio" value="4" onclick="getValue(this.value)" name="field1">D<br>
<input type="radio" value="5" onclick="getValue(this.value)" name="field1">E<br>
</form>
<div id="result"></div>
<script>
function getValue(a){
    document.getElementById("result").innerHTML = a
}
</script>

Нажатие кнопки выбора очищает другие (это обрабатывается путем присвоения им одного и того же name) и делает его значение доступным для выходных данных функции, которые находятся под списком.

person Andrew Leach    schedule 01.05.2012
comment
Большое тебе спасибо. Но теперь я получаю только выходное значение и не знаю, как его использовать для выбора изображения. - person helpmepls; 01.05.2012
comment
Ну, это не в вашем вопросе. Моя функция getValue() дает тот же результат, что и ваша функция radiocheck(). Как вы используете этот результат? - person Andrew Leach; 01.05.2012
comment
теперь это работает. я сделал все изображения value = ‹img src=/name.jpg› Теперь я получил изображение в качестве вывода в том же экране окна, когда установлен переключатель. И можно ли с этой точки манипулировать шириной или высотой? Могут ли теги значений иметь переменные для управления шириной и высотой? - person helpmepls; 01.05.2012
comment
Объем вопроса ползет, и SO не справляется с этим хорошо. Попробуйте что-нибудь (например, вы можете передать несколько переменных функции-обработчику и вернуть объект). Если вы ничего не получили, задайте другой вопрос о том, что вы сделали. И если этот ответ подходит для этого вопроса, пожалуйста, примите его. - person Andrew Leach; 01.05.2012

изменить непроверенную строку на false

document.forms[1].elements[z].checked="unchecked";

to

document.forms[1].elements[z].checked=false;

также

document.forms[1].elements[i].checked=="true"

разве это не должно быть похоже

document.forms[1].elements[i].checked===true 
person Satya    schedule 01.05.2012

а) Используйте jQuery, все будет НАМНОГО проще

б) Вы должны проверить

checked == true

и не

checked == "true"

а также

checked = "checked" 

ничего не сделает, это только значение true/false

person bluedevil2k    schedule 01.05.2012
comment
ок сделал как вы сказали. Теперь я не могу выбрать другой переключатель, по умолчанию всегда = 0; - person helpmepls; 01.05.2012
comment
что ‹input type=radio onclick=function()› вообще не работает. - person helpmepls; 01.05.2012