Функции .each()
внутри .click()
не работают. Я не знаю, как их структурировать, чтобы синтаксически корректно, поэтому jQuery будет распознавать и запускать их.
Я пробовал их использовать до закрытия });
но я либо не делал этого правильно, либо это не так. Я попробовал Googling, но кроме моего названия темы, я был в недоумении, что искать. Я попытался использовать функцию jquery внутри функции, но это оказалось потерянной причиной.
EDIT: Мне удалось получить первый, чтобы он выстрелил должным образом (//POST specials
), однако второй все еще не работает. Я даже пытался установить extras POST
внутри .ajax()
из specials
И это не сработало.
$('.class').find('#button').click(function() {
//all kinds of variables here
var dataString = {//variables:variables}
console.log(dataString);
$.ajax({
type: "POST",
url: "classes/reserve.php",
data: dataString,
cache: false,
success: function(html)
{
//POST specials
$('#specialscheck input:checked').each(function() {
var reservation = $('#reservation').val();
var special = parseInt($(this).attr('id'));
dataString = {reservation:reservation, special:special};
console.log(dataString);
$.ajax({
type: "POST",
url: "classes/insert_specials.php",
data: dataString,
cache: false,
success: function(html)
{
//$('.unitinfolist').html(html);
}
});
});
//POST extras
$('#extrascheck input:checked').each(function() {
var reservation = $('#reservation').val();
var extra = parseInt($(this).attr('id'));
dataString = {reservation:reservation, extra:extra};
console.log(dataString);
$.ajax({
type: "POST",
url: "classes/insert_extras.php",
data: dataString,
cache: false,
success: function(html)
{
//$('.unitinfolist').html(html);
}
});
});
}
});
});
Вы должны перенести элемент.each в функцию success
jquery post или установить его async: false
, чтобы следовать этому шаблону.
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType,
async:false
});
.each()
в любую функцию, включая обработчик щелчка. Вы уверены, что$('.checkboxes1 input:checked')
использует правильный селектор? Если никакие элементы не соответствуют этому селектору,.each()
ничего не сделает. Если эти элементы созданы вашим начальным вызовом Ajax, они еще не будут существовать, когда.each()
оператор.each()
. Вы можете проверить, сколько элементов совпадают сconsole.log($('.checkboxes2 input:checked').length)
. Возможно, вы могли бы показать некоторые из ваших HTML? (Или предоставьте нам демоверсию на jsfiddle.net. )