Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2015, 19:34
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

input type="radio" Не дружат при множественном декларировании
Есть вот такой код
<div id="result"></div>
<div id="result1"></div> 
<div class="rrr">
<input type="radio" name="selector_" value="post_active" id="posts" onclick="dataSelect23123()">Новость<br>
<input type="radio" name="selector_" value="page_active" id="pages" onclick="dataSelect23123()" >Страница
</div>
<br /><br />
<div class="rrr">
<label><input type="radio" name="selector_1" value="post_active1" id="posts1"onclick="dataSelect23124()" >Новость<br></label>
<label><input type="radio" name="selector_1" value="page_active1" id="pages1" onclick="dataSelect23124()">Страница</label>
</div>


<script>
function dataSelect23123() {
$( "#result" ).html( $('input:checked').val() + " is checked!" );
};
</script>

<script>
function dataSelect23124() {
$( "#result1" ).html( $('input:checked').val() + " is checked!" );
};
</script>

http://jsfiddle.net/u9ondfp8/ - Примерно вот так работает, ниже точное описание проблемы
Естественно подключена библиотека jquery.
Что происходит
1.Если переключать "радио" внутри группы name="selector_" при этом не трогая группу name="selector_1" скрипт работает

2.Если переключать "радио" внутри группы name="selector_1" при этом не трогая группу name="selector_2" скрипт работает

Основная проблема - переключили в группе name="selector_1" ну например "Radio - Страница" стала иметь атрибут (checked) и перешли в группу name="selector_" - здесь тоже все исправно работет. А вот при попытке переключатся опять в группе name="selector_1" - всё ,капец. Данные в #result1 не передаются.

Люди добрые помогите!!!! что делать не знаю, в JS не силен

Последний раз редактировалось oslayer, 30.03.2015 в 20:07.
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2015, 13:18
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сделать корректную разметку(html), и читать сообщения от jsfiddle в которых написано, что не надо сувать тег script а надо просто писать код в поле. И читать доку - $('input:checked') - в данном случае выбирает все инпуты на странице, и фильтрует по первому имеющему checked=true, поэтому когда в первой группе есть активный инпут - по какой бы ты группе не тыкал в дивах у тебя отображается именно активный инпут первой группы.
http://jsfiddle.net/u9ondfp8/3/

Последний раз редактировалось krasovsky, 31.03.2015 в 13:24.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2015, 13:36
Аспирант
Отправить личное сообщение для oslayer Посмотреть профиль Найти все сообщения от oslayer
 
Регистрация: 18.10.2012
Сообщений: 63

Спасибо за ответ! Приведённый пример работает. Но если у меня формируется таких групп n-ое количество. В таком случае должна быть одна функция а не несколько, как в таком случае передавать значение name="", в Вашем примере имена прописаны внутри функции. Как такое реализовать?
И читать доку - $('input:checked') - Если можно ссылку на эту самую доку. Буду очень признателен
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2015, 14:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от oslayer
И читать доку - $('input:checked') - Если можно ссылку на эту самую доку. Буду очень признателен
Дык!
http://jquery-docs.ru/Selectors/checked/
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2015, 14:55
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от oslayer
как в таком случае передавать значение name="", в Вашем примере имена прописаны внутри функции.
В твоем случае, когда ты на каждый инпут вешаешь функцию вообще получается что ты тыкаешь по инпуту, который теперь и будет активным, и вставляешь его valueв див. В таком случае можешь передавать в функцию параметр $(this) - onclick="dataSelect23123($(this))"
dataSelect23124 = function (el) {
$( "#result1" ).html( el.val() + " is checked!" );
};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стили input при событии onFocus SerjRamone Элементы интерфейса 11 08.07.2010 15:58
Баг Firefox: по F5 перескакивает radio при динамическом добавлении в DOM input Atoll Events/DOM/Window 6 22.06.2010 18:25
Передать текст в input при клике на него rolph Общие вопросы Javascript 2 13.04.2010 18:02
Добавление класса на елемент по id при фокусе на input Andrew_tl Events/DOM/Window 1 18.02.2010 19:09
Условия в скрипте в зависимости от input type="radio" FladeX jQuery 15 17.02.2010 17:27