2012-06-02 6 views
1

Мне нужно установить флажок из каждого установленного флажка. Прямо сейчас я могу получить сумму, которая великолепна, но я не могу получить каждый идентификатор.Как получить идентификатор флажка в JQuery

<input name="pay" class="pay_me" id="4" type="checkbox" value="6.00" /> 
<input name="pay" class="pay_me" id="5" type="checkbox" value="9.00" /> 
<input name="pay" class="pay_me" id="6" type="checkbox" value="3.00" /> 
<input name="pay" class="pay_me" id="9" type="checkbox" value="23.00" /> 

Jquery

$(document).ready(function() { 
    $('.pay_me').change(

    function() { 
     var t_payme = 0; 
     $('.pay_me:checked').each(function() { 
      t_payme += parseFloat($(this).val()); 
     }); 
     t_payme = parseFloat(t_payme).toFixed(2); 
     $('#to_payme').val(t_payme); 
    }); 
});​ 

С этим я могу сумма к моему текстовое поле

<input name="to_payme" id="to_payme" type="text" value="0.00" /> 

мне нужны проверенные идентификационные номера, как этот 4 | 6 | 9 в дополнительном текстовом поле

<input name="ids_to_update" id="ids_to_update" type="text" value="" /> 
+0

Более эффективно использовать 'parseFloat (this.value)' или просто '+ this.value' – RobG

ответ

2

Здесь вы идете:

$(document).ready(function() { 
    $('.pay_me').change(function() { 
     var t_payme = 0, ids = []; 
     $('.pay_me:checked').each(function() { 
      ids.push(this.id); 
      t_payme += parseFloat($(this).val()); 
     }); 
     t_payme = parseFloat(t_payme).toFixed(2); 
     $('#to_payme').val(t_payme); 
     $('#ids_to_update').val(ids.join('|')); 
    }); 
}); 

on jsFiddle

4

Вы можете получить элемент ID с this.id (или $(this).prop("id")). Используйте массив для хранения идентификаторов, как здесь:

$(document).ready(function() { 
    $('.pay_me').change(function() { 
     var t_payme = 0, checked = []; 
     $('.pay_me:checked').each(function() { 
      t_payme += parseFloat($(this).val()); 
      checked.push(this.id); 
     }); 
     t_payme = t_payme.toFixed(2); 
     $('#to_payme').val(t_payme); 
     $('#ids_to_update').val(checked.join("|")); 
    }); 
});​ 

DEMO:http://jsfiddle.net/rA5cv/

0

Отслеживайте идентификаторов в массиве:

var ids = []; 
$('.pay_me:checked').each(function() { 
    t_payme += parseFloat($(this).val()); 
    ids.push($(this).attr("id")); 
}); 

//now do something with the array of IDs... 
Смежные вопросы