Событие onchange на чекбокс
Добрый день!
Прошу помощи, ибо сам уже не знаю куда рыть (туплю видимо) :) Итак, есть чекбокс и поле. Поле обрабатывает функция func_change_post(); (транслит и аякс на проверку дубля этого поля к базе).
function func_change_post(){
$('#title_post').liTranslit({
elAlias: $('#url_post')
});
$('#title_post').blur(function(){
$('#url_post').trigger('change');
});
$('#url_post').change(function(){
//Здесь обработка аяксом, ничего выдающегося
});
}
Чекбок разрешает или запрещает изменение поля. При загрузке страницы делаю так, все работает
if($("#url_change_post").prop("checked") == false) {
func_change_post();
}
А вот если я сам чекбокс кликаю, я сделал так
$( "#url_change_post" ).on( "change", function() {
if($(this).prop("checked") == false) {
$( "#url_change_post" ).prop( "checked", false );
func_change_post();
}
});
И тоже вроде все работает, но если я ставлю чекбокс после того как сам его убирал функция сама продолжает работать, хотя я от нее этого не жду. Как прекратить выполнять функцию func_change_post(); если чекбокс отмечен? При этом до этого он может несколько раз быть включен/выключен. |
Alex57B,
не очень понятно зачем бесконечно назначать обработку blur и change, на сервер идёт масса запросов одновременно, да и браузеру не сладко.. |
Цитата:
|
рони,
А бесконечно назначено как полагаю, типа когда печатают в поле #title_post идет триггер на #url_post и #url_post проверяется на дубли в базе |
Цитата:
но func_change_post() не должна содержать никаких обработчиков событий. |
рони,
Направление понял, буду думать |
Alex57B,
типа что-то такого должно быть ...
function async func_change_post(){
const translit = await liTranslit();
const double = await liDouble();
const checked = url_change_post.checked;
if(translit && !double && !checked) что-то делаем
}
|
| Часовой пояс GMT +3, время: 02:50. |