Gera11
@Gera11

Как сделать чтобы функция срабатывала по нажатию на кнопку submit?

На сайте работает фильтр, и работает он так:
Когда в поле select или input выбираешь определенный параметр то он сразу срабатывает (AJAX) то есть без всяких действий. Хотелось бы переделать его под кнопку. Чтобы можно было задать все параметры а затем нажать на кнопку "Найти" и он срабатывал. Как такое сделать? Заранее спасибо!
Вот весь js код:
function UpdateFilter(data) {
	$.each(data, function(key, value) {
		$.each(value, function(key_val, val_value) {
			if ($('label[for='+key+'-'+key_val+']')) {
				$('label[for='+key+'-'+key_val+']').replaceWith(val_value);
			}
			if ($('[data-key='+key+'-'+key_val+']')) {
				$('[data-key='+key+'-'+key_val+']').replaceWith(val_value);
			}
		});
	});
}

var now_news, all_news, limit;

$(function() {
	var news = $("#dle-content").html();
	$("body").on("change", "#punpun_filter", function() {
		var filter = $("#punpun_filter").serialize();
		$.post(dle_root + "engine/mod_punpun/easy_filter/ajax/easy_filter.php", {form_field : filter}, function(data) {
			if(data) {
				var content = jQuery.parseJSON(data);
				UpdateFilter(content.js_form);
				limit = content.limit;
				all_news = content.all_news;
				now_news = content.now_news;
				$(".filter-box select").trigger("chosen:updated");
				if(content.error) {
					$("#dle-content").html(news);
				} else {
					$("#dle-content").html(content.news);
				}
			}
		});
	});
	
	$("body").on("click", "#bottom-nav", function() {
		var filter = $("#punpun_filter").serialize();
		if (now_news == 0) {
			now_news = limit;
		}
		$.post(dle_root + "engine/mod_punpun/easy_filter/ajax/easy_filter.php", {form_field: filter, all_news: all_news, now_news: now_news}, function(data) {
			if(data) {
				var content = jQuery.parseJSON(data);
				all_news = content.all_news;
				now_news = content.now_news;
				if (all_news<=now_news) {
					$('#bottom-nav').remove();
					$("#dle-content").append(content.news);
				} else {
					$(content.news).insertBefore('#bottom-nav');
				}
			}
		});
	});
	
	$(".filter-box select").chosen({
		disable_search_threshold: 100,
		allow_single_deselect: true
	});
});
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@Asokr
Вот в этой строке
$("body").on("change", "#punpun_filter", function() {

Заменить событие на click, а "#punpun_filter" - на id вашей кнопки
$("body").on("click", "#vasha_knopka", function() {


И кстати, вот это часть, у вас что-то подобное и делает:
$("body").on("click", "#bottom-nav", function() {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽