2015-06-03 2 views
1
$(document).ready(function() { 
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked 
     var nvalues = $('input[type="checkbox"]:checked').map(function() { 
      return this.value; 
     }).get(); 
     if (nvalues.length > 0) { 
      var fin = nvalues.value; 
      $('#here').html(fin); 
     } else { 
      $('#here').html("WTF"); 
     } 
    }); 
}); 

здесь Я храню проверенные значения в виде массива с использованием карты, но выход пуст.Я хочу получить значения всех отмеченных флажков

+0

я не знаю, если его из-за этого селектора может вы пытаетесь сделать это '$ ('input [type = checkbox]')' – roullie

+0

, если я выбираю 1-й флажок iam, не получая значения другого выбранного поля, он устанавливает значение только одного флажка, такого как 1, затем он показывает iam 1, и если я затем выбираю 2, тогда он показывает iam 1, который должен печатать если выбраны 1 и 2, тогда он отображает iam1 iam2 –

ответ

1

Try:

$(document).ready(function() { 
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked 
     var nvalues = $('input[type="checkbox"]:checked').map(function() { 
      return $(this).val(); 
     }).get(); 
     if (nvalues.length > 0) { 
      var fin = nvalues[0]; 
      $('#here').html(fin); 
     } else { 
      $('#here').html("error"); 
     } 
    }); 
}); 
+4

Возможно, вы захотите объяснить, что делает OP неправильно – Tushar

+0

И затем повысит ваш ответ в очереди –

1

Нажмите Выполнить фрагмент кода, чтобы увидеть его работу.

$("input[type=checkbox]").change(function(event) { 
 
    $("#output").text(
 
    JSON.stringify(
 
     $("input[type=checkbox]:checked").map(function() { 
 
     return this.value; 
 
     }).get() 
 
    ) 
 
); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" value="A">A<br> 
 
<input type="checkbox" value="B">B<br> 
 
<input type="checkbox" value="C">C<br> 
 
<input type="checkbox" value="D">D<br> 
 
<input type="checkbox" value="E">E<br> 
 
<div id="output"></div>

2

См Комментарии в коде:

$(document).ready(function() { 
    $(':checkbox').change(function() { // :checkbox pseudo-selector selects all checkboxes 
     var nvalues = []; // Initialize empty array 

     $(':checkbox:checked').each(function() { // For all checked checkboxes 
      nvalues.push($(this).val()); // Push current checkbox value in array 
     }); 


     if (nvalues.length > 0) { 
      $('#here').html(nvalues.toString()); // Array to string conversion 
     } else { 
      $('#here').html("WTF"); 
     } 
    }); 
}); 
2

get() метод возвращает массив значений, присоединиться к ним, используя join(), а затем показать его

$(document).ready(function() { 
 
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked 
 
     var nvalues = $('input[type="checkbox"]:checked').map(function() { 
 
      return this.value; 
 
     }).get(); 
 
     if (nvalues.length > 0) { 
 
      var fin = nvalues.join(','); 
 
      $('#here').html(fin); 
 
     } else { 
 
      $('#here').html("WTF"); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input type="checkbox" value="1"/> 
 
<input type="checkbox" value="2"/> 
 
<input type="checkbox" value="3"/> 
 
<input type="checkbox" value="4"/> 
 
<input type="checkbox" value="5"/> 
 
<input type="checkbox" value="6"/> 
 
<div id="here"></div>

1

Там нет это свойство в массиве как value:

var fin = nvalues.value; 

Попробуйте присоединиться:

var fin = nvalues.join(','); //gives csv 

ИЛИ

var fin = nvalues.join(' ');//spaces 
Смежные вопросы