Мой div при нажатии не отправляет форму внутри него с помощью js

Поэтому проблема, которую я не могу решить, заключается в том, что у меня есть php-скрипт, который выбирает все из таблицы чата в db и превращает его в div с классом «chaty». У чати есть «невидимая» форма, у которой есть вход со значением индекса чата. Совсем смущает. Таким образом, в основном, когда я нажимаю на часть div chaty, форма внутри отправляется из-за jquery onclick (только на входе отображается none). Существует поиск в чате, который использует запрос ajax, который он получает данные при каждом изменении ключа в submit, а затем чаты распечатываются по имени. Выбранные чаты не отправляют форму внутри них при нажатии. Вот частые divs до и после и js-код. Код: Чат, который отправляется:

<div class="chaty"> <form method="post" action="index.php" name="chat_lox" class="chat_loc"> <input id="disspell" type="text" name="chat_locy" v value="5e2dbe2be3b5927c588509edb1c46f7d"> </form> <div class="chatDesc" id="14025298"> <div class="tit">Creator: </div> <div class="iriss"><i id="close_chatn" onclick="closeChat(14025298)" class="material-icons">close</i></div> <form action="mypage.php" method="post"> <div class="authr_name"><button value="John Brown" name="userlink" class="subm_as_text">Hitsuji</button></div> </form> <div class="titd"><h3>Description</h3></div> <div class="description_chat">jaames</div> </div> <span onclick="openChat(14025298)">☰</span> <div class="chatname"><h3>james</h3></div> <div class="chatback" style="background:url (cimages/1Hitsujib4cc344d25a2efe540adbf2678e2304c1501268980.jpg); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;"></div> <div class="underlie"><p>Users: 2</p><p> Created: 2017/07/28 07:09:40pm</p> </div> </div> 

Чат, который не отправляется:

 <div class="chaty"> <form method="post" action="index.php" name="chat_lox" class="chat_loc"> <input id="disspell" type="text" name="chat_locy" value="5e2dbe2be3b5927c588509edb1c46f7d"> </form> <div class="chatDesc" id="55876362" style="display: none; width: 0px;"> <div class="tit">Creator: </div> <div class="iriss"><i id="close_chatn" onclick="closeChat(55876362)" class="material-icons">close</i></div> <form action="mypage.php" method="post"> <div class="authr_name"><button value="John Brown" name="userlink" class="subm_as_text">Hitsuji</button></div> </form> <div class="titd"><h3>Description</h3></div> <div class="description_chat">jaames</div> </div> <span onclick="openChat(55876362)">☰</span> <div class="chatname"><h3>james</h3></div> <div class="chatback" style="background:url(cimages/1Hitsujib4cc344d25a2efe540adbf2678e2304c1501268980.jpg); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;"></div> <div class="underlie"><p>Users: 2</p><p> Created: 2017/07/28 07:09:40pm</p></div> </div> 

JS:

 $(".chat_loc").on("click",function() { $(this).submit(); alert("submitted"); }); 

спасибо

Вы должны использовать event-delegation –

 $(document).on("click",".chat_loc",function() { $(this).submit(); alert("submitted"); }); 

Попробуйте поиграть с .on, чтобы жить. Если он работает, это может означать, что вы инициализируете этот обработчик событий до того, как элемент находится на странице. On будет регистрировать события только для существующих элементов. Live гарантирует, что событие вызывается для всех и каждого, которые соответствуют селектору. Даже те элементы, которые зарегистрированы в будущем. Вот об этом подробнее. http://api.jquery.com/live/

Вы можете попробовать инкапсулировать событие внутри функции jquery ready, когда DOM загружается, а затем событие относится к определенному элементу.

  $(function(){ $(".chat_loc").on("click",function() { $(this).submit(); alert("submitted"); }); }); 

Или вы также можете использовать функцию, указанную выше.