Я проверил наличие дубликатов, но не нашел точно такой же проблемы, так что поехали. У меня есть два переключателя, и мне нужно вернуть их значения при отправке формы. Проблема в том, что когда я нажимаю кнопку отправки, я всегда получаю одно и то же значение переключателя. Вот код:

<div id="automatic">
        <p>Title1
            <input type="radio" id ="mode" name="mod" value="auto" >
        </p>           
    </div>

    <div id="selection">
        <p>Title2
            <input type="radio" id ="mode" name="mod" value="nonauto" >
        </p>           
    </div>

    <form id="search" action="test.jsp" method="GET" onsubmit="if (document.getElementById('search_text').value.length < 1) return false;">
        <input id="search_text" type="text" name="q">
        <input id="searchButton" type="submit" onclick="displayRadio()" value="Search" autocomplete="off" size="115">
    </form>

И вот код Javascript:

function displayRadio() {
        alert(document.getElementById("mode").value)
}
-2
Michael 23 Янв 2013 в 17:00
Это недопустимый код HTML, у вас не может быть нескольких элементов с одним и тем же атрибутом id (т. Е. id="mode")
 – 
freefaller
23 Янв 2013 в 17:03
Если у меня разные идентификаторы, переключатели больше не исключают друг друга. Есть предложения по достижению моей цели?
 – 
Michael
23 Янв 2013 в 17:08
Почему у всех ваших тегов ввода нет конечного тега? Вы не можете иметь одинаковые значения идентификаторов для переключателя. Атрибут name может быть таким же, но не id.
 – 
DDK
23 Янв 2013 в 17:12
Это атрибут name делает их взаимоисключающими, верно?
 – 
javabeangrinder
23 Янв 2013 в 17:15
Я действительно не получаю отрицательных голосов. Это не HTML-конкурс, я должен поставить неправильный код. Что бы ни.
 – 
Michael
23 Янв 2013 в 17:15

1 ответ

Лучший ответ

Используйте разные идентификаторы и используйте свою функцию, чтобы найти, какие из них проверены, и вернуть их значение.

function displayRadio() {
    var modeauto = document.getElementById('modeauto');
    var modenoauto = document.getElementById('modenoauto');
    var value = modeauto.checked ? modeauto.value : modenoauto.value;
    alert(value);
}

Я бы порекомендовал использовать jQuery для простоты.

1
javabeangrinder 23 Янв 2013 в 17:08