Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Установка чекбокса и отправка формы при клике по блоку (https://javascript.ru/forum/misc/50690-ustanovka-chekboksa-i-otpravka-formy-pri-klike-po-bloku.html)

UserKit 07.10.2014 18:22

Установка чекбокса и отправка формы при клике по блоку
 
Здравствуйте!
В javascript совсем новичок, но нужно реализовать следующее:
Есть код:
<form name='aForm' id='aForm' enctype='multipart/form-data' method='post' action='submit.php' onsubmit="return checkForm(this);">
....
<div class="del_img"></div>
<input id='k411' type='checkbox' name='f_KILL411' value='0' />
....
<input type="submit" name="submit" value="СОХРАНИТЬ ИЗМЕНЕНИЯ" class="btn">
</form>
Как сделать так, чтобы при клике по блоку с классом del_img
отмечался чекбокс и происходила отправка формы и появление модального окна с id="thx" ?
спасибо!

Viral 07.10.2014 18:33

оу... очень и очень просто))
написать об этом здесь

UserKit 07.10.2014 19:27

Установку чекбокса вроде сделал вот так
<div class="del_img" onclick='$("#k411").attr("checked","checked")'></div>
А как добавить отправку формы?
пробовал
<div class="del_img" onclick="submitform()"></div>
форма не отправляется и как совмещать первое со вторым?

XelaNimed 08.10.2014 00:04

Здравствуйте.
Советую Вам с самого начала освоения/изучения JavaScript приучить себя разделять разметку и логику приложения, в противном случае Вы сами запутаетесь что и где прописано/навешано.
Так-же пользуйтесь тегами оформления кода (подробней об этом можно прочитать здесь). Люди, которые могли бы Вам помочь, возможно не имеют много времени на понимание плохо оформленного кода. Также имеет смысл после написания Вашего вопроса взглянуть на его со стороны и задать себе вопрос: "А поймут ли мой вопрос люди, которые и понятия не имеют о моей проблеме?". В описании проблемы или задачи лучше больше информации, чем наоборот.
По теме. Ниже приведенный пример подразумевает использование jQuery.
<!--- HTML -->
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<form name="aForm" id="aForm">
    <!-- anything -->
    <div class="del_img"></div>
    <input id="k411" type="checkbox" name="f_KILL411" value="0" />
    <!-- anything -->
    <input type="submit" name="submit" value="СОХРАНИТЬ ИЗМЕНЕНИЯ" class="btn">
</form>
/* JavaScript/jQuery */
$(document).ready(function(){
    $("#aForm")
        .find("div.del_img")
        .click(function(e){
            // Отмечаем чекбокс
            $("#k411").attr("checked","checked");
            // Отправляем форму
            $("#aForm").trigger("submit");
        });
});

Насчет отправки формы... Отправка происходит с перезагрузкой страницы или через AJAX?!

UserKit 13.10.2014 18:35

Спасибо!
Отправка происходит перезагрузкой.
Форма не отправляется. Чекбокс устанавливается, а форма не отправляется.
Но если удалить строку <input type="submit" name="submit" value="СОХРАНИТЬ ИЗМЕНЕНИЯ" class="btn">
то всё работает.
Но удалить её не могу, т.к. в форме помимо чекбокса есть другие поля, после внесения изменения в которые необходимо на что то нажать чтобы сохранить изменения.
Блок <div class="del_img"></div> - визуально кнопка для удаления загруженного в форму файла. Нужно чтобы при нажатии на <div class="del_img"></div> отмечался чекбокс "удалить загруженный в поле файл" и отправлялась форма.

kostyanet 13.10.2014 19:21

Цитата:

Сообщение от UserKit
Как сделать так, чтобы при клике по блоку с классом del_img
отмечался чекбокс и происходила отправка формы и появление модального окна с id="thx" ?
спасибо!

Так не бывает. Когда форма уходит - это уходят заголовки на сервер и с этого момента страница начинает загружатся. То есть та страница в прошлом - уже не существует. Ничего там уже открыть нельзя, или можно только на вновь загруженной.

Или вы по XMLHttpRequest хотите?

kostyanet 13.10.2014 19:23

Ниче не понял, в общем, может быть хотите _перед_ отправкой что-то проверить и по обстоятельсвам ее прервать?

UserKit 13.10.2014 20:22

Цитата:

Сообщение от kostyanet (Сообщение 335263)
Или вы по XMLHttpRequest хотите?

:blink: :blink:
Я не знаю что это вообще.
Я понимаю что так не бывает. Нужно альтернативное решение для сообщения посетителю о том, что форма отправлена.
В идеале конечно отправлять данные ajax-ом. Но для меня это вообще дремучий лес.


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