Помогите с выборкой значений
Имеется такой html
<div id="results"> <div position_title="1" id="option-242" class="option radio"> <div class="fields"> <div> <input type="radio" name="option[242]" value="92" id="option-value-92"> <label for="option-value-92">5 x 7</label> </div><div> <input type="radio" name="option[242]" value="93" id="option-value-93"> <label for="option-value-93">6 x 6</label> </div></div> </div> <div position_title="1,1" id="option-270" class="option"> <label style="width:150px;"><span class="required">*</span>RSVP OR INSERT STYLE:</label> <div class="fields"> <select name="option[270]"> <option value=""> --- Please Select --- </option> <option value="336">DOUBLE SIDED RSVP POSTCARD</option> </select> </div> </div></div> то есть алгоритм такой 1)Обязательно только то что выбрано внутри контейнера div id="results" 2) Если пользователь кликнул по radio кнопке получить ее id="" а дальше по этому id считать значение с label который с таким-же for именем(ну только то что в лабеле текст находится). 3) Так-же само только уже в случае с select. Спасибо. |
почему-то не получается даже selector настроить на click по radio кнопке фиксировать....
$('#results input[type=\'radio\']:checked').click(function() {.................... не работает подобный selector... |
Цитата:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> $(function (){ $('#results input:radio').click(function (){ alert($(this).next('label[for="'+this.id+'"]').text()); }); }); </script> </head> <body> <div id="results"> <div position_title="1" id="option-242" class="option radio"> <div class="fields"> <div> <input type="radio" name="option[242]" value="92" id="option-value-92"> <label for="option-value-92">5 x 7</label> </div> <div> <input type="radio" name="option[242]" value="93" id="option-value-93"> <label for="option-value-93">6 x 6</label> </div> </div> </div> <div position_title="1,1" id="option-270" class="option"> <label style="width:150px;"><span class="required">*</span>RSVP OR INSERT STYLE:</label> <div class="fields"> <select name="option[270]"> <option value="">--- Please Select ---</option> <option value="336">DOUBLE SIDED RSVP POSTCARD</option> </select> </div> </div> </div> </body> </html> |
Цитата:
|
спасибо с радио кнопками проблема решина, по поводу select, как получить информацию выбранную в нем, вот смотри есть нечто такое....
Задача вообщем такая имеется куча select элементов http://jsfiddle.net/z79cn/ (там работает выбор, но только первого шага) (SELECT элементов может быть сколько угодно, по имени select элемента - обращаться нельзя! надо как-то так знать что это выбирается именно этот SELECT (как-то может положением в DOM таблице я не знаю даже....) как такое намутить? заплет( Задача: Имеется n-ное количество select элементов, построить строку в виде выбранных значений этих select элементов, по имени select элемента обращаться нельзя, если в процессе выбора, пользователь захочет вернутся на предыдущие selecti(а строка уже с выбором построена), то поменять в строке только те значения которые изменил пользователь! Вот как такое сделать, сложность вся как понять какой список юзает пользователь? если имя его юзать нельзя.... но можно например узнать как-то положение этого Selecta в DOM таблице... например в ДОМЕ Selecti находятся на 20,30,40,50 позициях, построилась строка из выбранных уже нами этих 4 selectov, например , ну и каким образом например пользователь поменял значение selecta который в доме находится на 30 позиции, поменять только строку в test1,XXXXXXXX,test3,test4 этом месте, такое вообще реализуется? или тут надо не строку а массив брать? где 0 ячейка это первый select, 1 ячейка 2-ой select? и потом в виде строки выводить это? или как? я буду рад даже просто теорию если расскажите))))! |
cha0s, тут бы объект типа Map помог, да вот беда с кроссбраузерностью. Можешь впринципе создавать свойство у DOM-элемента select, которое будет указывать на <span> с текстом.
Вобще, в задачу особо не вникал, полностью вопрос не читал.. |
Вот для примера
достаточно просто слов SMALL,LARGE, DAMASK и т.д тупо строку склепать... То есть например есть 6 SELECT, пользователь делает выбор и сверху строится строка его выбора, вроде пока не так сложно, НО когда пользователь захочет поменять выбранное значение какое-то ранние, мне как-то надо знать где оно в строке... чтоб только этот кусочек заменить... не знаю честно что тут лучше и как быть), еслиб был бы просто последовательный выбор без возможности изменить было бы вообще все просто строку через .append сделал да и все)), но тут дилемма в том как я могу знать в каком SELECT меняется значение, и уж тем более знать где оно в строке находится чтоб сделать строке replace на другое значение;DDD (имя selecta нельзя использовать - hard code не прокатит) |
Спасибо, только заметил что почему-то в моем примере он не корректно работает
http://jsfiddle.net/z79cn/ выбери например первых 3-ри элемента(LARGE) - все ок, а потом попробуй поменять 2-ое значение на SMALL, он в строке меняет первую позицию), из-за чего это происходит? я заменил var selects = document.getElementsByTagName('select'); это на свое var selects = $('[position_title ^= 3] select'); так как мне не надо все selecti, а только определенные, ну цикл твой не ломается все четко определяет что 6 selectov у меня, что ему не нравится в коде? странно а твой пример работает нормально)) |
Цитата:
http://jsfiddle.net/z79cn/1/ вот этот построен на базе твоего кода, разница только в том что я выбераю не все Selecti а только те у которых есть атрибут со значением position_title=3*, выбери например у первых двух значения LARGE, а потом у 2-го поменяй значение на SMALL, он уже заменяет в строке не то что нужно) значение первого селекта переписывает... а разницы от твоего кода нету не какого)) только в выборе условие стоит, мы имеем тот-же самый массив... |
Часовой пояс GMT +3, время: 04:38. |