Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не срабатывает функция по клику (https://javascript.ru/forum/jquery/59262-ne-srabatyvaet-funkciya-po-kliku.html)

CrKid 03.11.2015 13:58

Не срабатывает функция по клику
 
Помогите разобраться, в чем дело.

Не срабатывает функция по клику:
$('#notification_print').click (function SaveCitizenData() {
	$("input[role='citizen']").each(function(elem) {
		localStorage.setItem($(this).attr('name'), $(this).val())
	});
	$("input[role='citizen_date']").each(function(elem) {
		DateSub($(this).attr('name'),$(this).val());
	});
	if ($("#start_work").prop("checked")) 
		document.location.href = 'startwork.html'
	else if ($("#end_work").prop("checked"))
		document.location.href = 'endwork.html'
	else
	$("div.warning").html("Выберите форму, которую нужно заполнить!");
});


<button id="notification_print" type="submit" class="btn btn-primary">Заполнить и распечатать форму</button>


При этом код, запущенный в консоли devtools работает нормально:
$("input[role='citizen']").each(function(elem) {
		localStorage.setItem($(this).attr('name'), $(this).val())
	});
	$("input[role='citizen_date']").each(function(elem) {
		DateSub($(this).attr('name'),$(this).val());
	});
	if ($("#start_work").prop("checked")) 
		document.location.href = 'startwork.html'
	else if ($("#end_work").prop("checked"))
		document.location.href = 'endwork.html'
	else
	$("div.warning").html("Выберите форму, которую нужно заполнить!");

рони 03.11.2015 14:19

Цитата:

Сообщение от CrKid
Не срабатывает функция по клику

либо элементов ещё нет на странице либо вы эту страницу перезагружаите кликом

CrKid 03.11.2015 15:26

Цитата:

Сообщение от рони (Сообщение 394313)
либо элементов ещё нет на странице либо вы эту страницу перезагружаите кликом

но при клике вот эта часть функции работает нормально, т е данные из полей input[role='citizen'] нормально записываются в localstorage:
$("input[role='citizen']").each(function(elem) {
		localStorage.setItem($(this).attr('name'), $(this).val())
	});
	$("input[role='citizen_date']").each(function(elem) {
		DateSub($(this).attr('name'),$(this).val());
	});

таким образом почему-то не работает конструкция:
if ($("#start_work").prop("checked")) 
		document.location.href = 'startwork.html'
	else if ($("#end_work").prop("checked"))
		document.location.href = 'endwork.html'
	else
	$("div.warning").html("Выберите форму, которую нужно заполнить!");

рони 03.11.2015 15:35

Цитата:

Сообщение от CrKid
type="submit"

:-?

CrKid 03.11.2015 16:02

Т е type="submit" мешается?
Удалил:
<button id="notification_print" class="btn btn-primary">Заполнить и распечатать форму</button>

не работает.

Для примера, вот эта функция отрабатывает нормально:
$('#changeconst').click (function ChangeConstData() {
	$("input[role='const']").each(function(elem) {
		localStorage.setItem($(this).attr('name'), $(this).val());
	}),
	$("input[role='const_firmstatus']").each(function(elem) {
		if ($(this).prop("checked")) 
			localStorage.setItem($(this).attr('id'), 'X')
		else
			localStorage.setItem($(this).attr('id'), ' ');
	});
	$("input[role='const_work']").each(function(elem) {
		if ($(this).prop("checked"))
			localStorage.setItem($(this).attr('id'), 'X')
		else
			localStorage.setItem($(this).attr('id'), ' ');
	});
});

<button type="submit" id="changeconst" class="btn btn-primary">Изменить реквизиты</button>

рони 03.11.2015 16:41

Цитата:

Сообщение от CrKid
Удалил:

это не изменит ничего
нужно type="button"

CrKid 03.11.2015 16:55

Аллилуйя!


Часовой пояс GMT +3, время: 17:16.