2014-02-11 5 views
0

Я полностью отдаю себе отчет в том, что в этом вопросе было много вариантов, поэтому, пожалуйста, внимательно изучите его, прежде чем голосовать, поскольку я уверен, что четкое решение поможет многим другим.jQuery получить выбранный указатель переключателей

У меня есть серия переключателей, которые динамически генерируются как часть цикла через записи базы данных. Одна радиограмма на запись в HTML. Каждому переключателю присваивается значение индекса массива идентификатора записи;

<input type="radio" id="use_msg_id[1]" value="1" /> 
<input type="radio" id="use_msg_id[2]" value="2" /> 
<input type="radio" id="use_msg_id[3]" value="3" /> 
<input type="radio" id="use_msg_id[4]" value="4" /> 

Когда пользователь нажимает, скажем, на радио-кнопке с use_msg_id [3], мне нужно JQuery, чтобы быть в состоянии собрать это значение индекса для меня. Я знаю, что есть способ сделать это, но не искал правильные условия, чтобы найти правильное решение.

Спасибо.

+0

Если индексы всегда будут отсортированы в том, что Орд r, то вы можете использовать 'index()' – Alvaro

ответ

3

Вы можете использовать regex извлечь номер

$(':radio').change(function(){ 
    var index = $(this).val().match(/\d+/); 
}) 

DEMO

+1

Для 'index', я считаю, что он отказывается от числа между скобками в теге' id', поэтому это решение работает, только если это число связано с порядком, в котором они появляются DOM. – Alvaro

+1

Это было бы правильно, мне нужно это число в скобках. – Skittles

+1

@ Satpal - Это прекрасно! Он возвращает ["2", index: 0, input: "2"] для той, на которую я нажал. Я должен иметь возможность извлечь идентификатор из этого результата. Спасибо. :) – Skittles

0

использование:

parseInt($(this).attr('id').replace(/use_msg_id[/, '').replace(/]/,'')); 
0

использование:

var id = this.id.substr(this.id.indexOf("["), this.id.indexOf("]")) 
parseInt(id); 
+0

Кроме того, этот ответ на самом деле привел решение к другому аспекту того же процесса, над которым я работаю. Так что, спасибо за это! – Skittles

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