2011-11-23 13 views
0

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

То, что я пытался сделать здесь имеют разные идентификаторы для того же класса, и я пытаюсь понять, как определить идентификатор, присвоенный

<input type="radio" class="price" name="price" value="20.00" checked="true" id="1" /> 
<input type="radio" class="price" name="price" value="385.00" id="2" /> 
<input type="radio" class="price" name="price" value="504.00" id="3" /> 

$('.price').change(function() { 
calculate(); 
}); 

function calculate() { 
    var q = $('input#quantity').val(); 
    var p = $("input[name=price]:checked").val(); 
    var tot = ((q*p)+parseInt(s)); 
    $('input#total').val(tot); 
}; 

Таким образом, в функции вычислить(), я получаю но как я могу проверить идентификатор для переключателя? Возможно, это назад, и есть лучший способ получить стоимость моего доллара для математической части расчета, и я открыт для любых предложений.

ТИА - Dan

ответ

3

Итак, как у вас есть HTML прямо сейчас, вы могли бы использовать это:

var id = $("input[name=price]:checked").attr('id'); 

НО!

Атрибут id зарезервирован для DOM, и на вершине, что она не может не должно начинаться с цифры. Вместо этого я мог бы предложить использовать jQuery.data(). Просто добавьте data- к передней части id атрибута было:

<input type="radio" class="price" name="price" value="385.00" data-id="2" /> 

А затем получить атрибут data-id, используя следующие:

var id = $("input[name=price]:checked").data('id'); 
+0

Ваше право. Я чувствовал, что использую его неправильно, и ваше предложение здесь выполнило то, что я пытался сделать. Благодарю. – Dan

0

Вы можете использовать elem.attr('id'), но вы должны быть осторожны с злоупотребляя id такой атрибут; в теории они должны быть уникальными, и must start with a letter.

Если вы хотите прикрепить произвольные данные к элементу, вы можете использовать data attributes. Например:

<input type="radio" class="price" name="price" value="20.00" checked="true" data-id="1" /> 

Тогда вы получите значение с:

elem.data('id') 
Смежные вопросы