Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.01.2023, 20:24
Аватар для Alex57B
Интересующийся
Отправить личное сообщение для Alex57B Посмотреть профиль Найти все сообщения от Alex57B
 
Регистрация: 01.08.2013
Сообщений: 22

Событие 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, 28.01.2023 в 20:29.
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2023, 21:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alex57B,
не очень понятно зачем бесконечно назначать обработку blur и change, на сервер идёт масса запросов одновременно, да и браузеру не сладко..
Ответить с цитированием
  #3 (permalink)  
Старый 28.01.2023, 23:22
Аватар для Alex57B
Интересующийся
Отправить личное сообщение для Alex57B Посмотреть профиль Найти все сообщения от Alex57B
 
Регистрация: 01.08.2013
Сообщений: 22

Сообщение от рони Посмотреть сообщение
Alex57B,
не очень понятно зачем бесконечно назначать обработку blur и change, на сервер идёт масса запросов одновременно, да и браузеру не сладко..
Может из-за этого и не работает. Вы бы как сделали?
Ответить с цитированием
  #4 (permalink)  
Старый 28.01.2023, 23:27
Аватар для Alex57B
Интересующийся
Отправить личное сообщение для Alex57B Посмотреть профиль Найти все сообщения от Alex57B
 
Регистрация: 01.08.2013
Сообщений: 22

рони,
А бесконечно назначено как полагаю, типа когда печатают в поле #title_post идет триггер на #url_post и #url_post проверяется на дубли в базе
Ответить с цитированием
  #5 (permalink)  
Старый 28.01.2023, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Alex57B
Вы бы как сделали?
не зная ваш алгоритм, ванговать нет желания)))
но func_change_post() не должна содержать никаких обработчиков событий.
Ответить с цитированием
  #6 (permalink)  
Старый 28.01.2023, 23:33
Аватар для Alex57B
Интересующийся
Отправить личное сообщение для Alex57B Посмотреть профиль Найти все сообщения от Alex57B
 
Регистрация: 01.08.2013
Сообщений: 22

рони,
Направление понял, буду думать
Ответить с цитированием
  #7 (permalink)  
Старый 28.01.2023, 23:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alex57B,
типа что-то такого должно быть ...
function async func_change_post(){

    const translit = await liTranslit();
    const double = await liDouble();
    const checked = url_change_post.checked;
    if(translit && !double && !checked) что-то делаем
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия на элемент вызывает событие onchange или нет? SWORDMAN Общие вопросы Javascript 6 09.09.2022 17:26
Событие onchange для Combobox (изменение стрелкми клавиатуры) Manyasha Events/DOM/Window 2 29.02.2016 17:59
событие onchange для select sasha001ua Мобильный JavaScript 0 20.05.2014 19:55
Как отменить событие onchange при отправке формы? Petja Элементы интерфейса 1 10.04.2014 18:10
Как отловить событие onchange на LookUp поле? spps Events/DOM/Window 0 09.09.2008 16:02