|
|
|
| Привет! Понадобилось написать скрипт который по событию change у чекбоксов записывал их знаениче в скрытое поле, при смене наоборот удалял то что только что добавил...
Пишу так:
<input type="checkbox" value="14" class="my_checkbox"> Первое знаечение 14 <br>
<input type="checkbox" value="17" class="my_checkbox"> Второе знаечение 17 <br>
<input type="checkbox" value="11" class="my_checkbox"> Третье знаечение 11 <br>
<input type="hidden" name="my_hidden" value="" id="my_hidden_val" />
<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
$(".my_checkbox").change(function(){
var my_id = $(this).val() + ','; // value у чекбокса
var my_hidden_val = $('#my_hidden_val').val(); // value у скрытого поля
if ($(this).attr("checked")) {
$('#my_hidden_val').val(my_hidden_val + my_id); // value у скрутого поля при активном чекбоксе
} else {
var count_id = my_id.length; // количество символов только что добавленного value у чекбокса
var count_arr = my_hidden_val.length; // количество символов у переменной с содержимым value скрытого поля
var count_get = count_arr - count_id; // для substr сколько символов было ДО добавления value
var my_substr = my_hidden_val.substr(0,count_get); // режем строку с начала до предыдушего количества символов
$('#my_hidden_val').val(my_substr); // вставляем новый value
}
});
})
</script>
|
Верно ли я реализовал данную задачу? может есть подход куда проще? | |
|
|
|
|
|
|
|
для: tima2010
(13.02.2012 в 10:08)
| |
<input type="checkbox" value="14" class="my_checkbox"> Первое знаечение 14 <br>
<input type="checkbox" value="17" class="my_checkbox"> Второе знаечение 17 <br>
<input type="checkbox" value="11" class="my_checkbox"> Третье знаечение 11 <br>
<input type="text" name="my_hidden" value="" id="my_hidden_val" />
<script type="text/javascript">
jQuery(document).ready(function(){
$(".my_checkbox").change(function(){
var val = []; // массив с значениями выбранных элементов
$.each($(".my_checkbox:checked"),function(i,n){ // обходим все активные чекбоксы
val[i] = $(n).val(); // добавляем в массив их значения
})
$('#my_hidden_val').val(val.join(',')) // склеиваем массив в строку и пишем результат в нужное поле
})
})
|
| |
|
|
|
|
|
|
|
для: AlexSol
(13.02.2012 в 10:22)
| | Вот значит как, огромное спасибо буду разбирать код, все работает! | |
|
|
|