В настоящее время я работаю с простым AJAX-запросом, когда пользователь изменяет что-то в поле ввода и нажимает значок «проверить».Приведенный ниже код не меняет значок с «изменить» на «проверить», НО, когда я удаляю строку $.when($(icon).trigger("click")).then(function(){
с помощью запроса AJAX, значок меняется.
Я действительно ценю любую помощь с соответствующей инструкцией jquery
$(document).ready(function() {
$('.clickable-edit-icon').click(function(e){
e.preventDefault();
var delete_id = $(this).closest('tr').data('contact-id');
var icon = $(this).children();
var input = $(this).parent().children('input');
var input_text = $(input).text();
if (icon.text() == "edit") {
$(input).prop('disabled', false);
$(icon).text("check");
$.when($(icon).trigger("click")).then(function(){
$.ajax({
url: 'edit/'+delete_id+'/',
method: 'PUT',
data: {},
contentType:'application/json',
error: function(result){},
success: function(result) {}
});
});
}else{
$(input).prop('disabled', true);
$(icon).text("edit");
}
});
});
Структура HTML
<tr>
<td id="contact-first-name">
<input value="{{ contact.first_name }}" disabled>
<span class='clickable-edit-icon'>
<i class='tiny material-icons'>edit</i>
</span>
</td>
</tr>
Если вам интересно, почему я написал var input = $(this).parent().children('input');
вместо var input = $(this).parent('input');
причина в том, что ввод во втором случае не определен.