Когда пользователь пытается установить флажок без отметки (я ничего не делаю, если он уже проверен), я запрещаю проверять флажок и проверять его с помощью вызова AJAX. Но я не могу понять, как «проверить» его снова. Я пытался использовать $(this).trigger('click');
, но он не работает.Undo preventDefault on checkbox in AJAX call
Я также пробовал перемещение preventDefault
на fail
состояние. Но это заставило звонок работать, никогда. Думаю, потому что вызов AJAX меняет область действия.
$(document).ready(function(){
$('input:checkbox').click(function(e) {
if($(this).prop('checked') && $(this).val()=='on')
{
e.preventDefault();
var name = $(this).attr('name');
var pivot_attendee_program = name.split(/\]\[|\[|\]/);
var data = {
'pivot' : pivot_attendee_program[0],
'attendee_id' : pivot_attendee_program[1],
'program_id' : pivot_attendee_program[2]
};
//console.log(data);
$.ajax({
type: "GET",
url: '{{ route('ageCheck') }}',
data: data,
success: function(result){
console.log('success');
if(result == 'pass'){
console.log('pass');
$(this).trigger('click');
}
else{ //result == 'fail'
console.log('fail');
}
},
error: function(result){
alert(JSON.stringify(result));
}
});
//validate Age
//ajax check age of attendee against program
//ajax check age of attendee against program_seg
}
});
});
объяснить это немного лучше. Если checkbos *** *** проверен, вы предотвратите поведение по умолчанию, и теперь он не установлен, и вам нравится снова его проверять? – adeneo
'$ (this) .prop (" checked ", true)' – Barmar
@Barmar - это близко, 'this' не является элементом в обработчике успеха ajax, иначе я думаю, что это ответ, но не уверен? – adeneo