#jquery #html
#jquery #HTML
Вопрос:
Я пытаюсь отправить форму после нажатия на div ‘tweet’. Достаточно просто, но я не могу заставить его работать. При нажатии ничего не происходит. Не думайте, что я перехожу к правильному селектору. Приведенный ниже пример html содержит много экземпляров «tweet», но все с разными «значениями», которые я хочу отправить через post
HTML
<div id="tweet">
<div class="panel-body">
<div class="row">
<div class="col-sm-1">
<form id="posticon" method="POST" action="">
<input type="hidden" name="srch_term" id="srch_term" value="John">
</form>
</div>
</div>
</div>
</div>
jquery
$(document).ready(function(){
$(document).on('click', '#tweet', function(){
$(this).children("#posticon").submit();
});
});
Комментарии:
1. Идентификаторы должны быть уникальными
2. Предупреждение о преступлении:
ID
дубликаты.3. Как и куда вы хотите отправить форму, не предпринимая никаких действий? Как уже указывали Андреас и Правин, у вас также не может быть много
tweet
экземпляров с одинаковым идентификатором
Ответ №1:
Во-первых, вы можете использовать один id
раз на странице, поэтому .tweet
вместо этого используйте класс.
Во-вторых, .children()
метод jQuery используется для получения прямых дочерних элементов (т. Е. Он не глубже одного уровня), поэтому используйте .find()
вместо этого, который глубже одного уровня.
$(document).ready(function() {
$(".tweet").click(function() {
$(this).find(".posticon").submit();
});
//to check if the form was successfully submitted
$(".posticon").submit(function() {
var inputValue = $(this).children("input").val();
alert(inputValue "'s form was submitted");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tweet">
John's Tweet
<div class="panel-body">
<div class="row">
<div class="col-sm-1">
<form class="posticon" method="POST" action="">
<input type="hidden" name="srch_term" id="srch_term" value="John">
</form>
</div>
</div>
</div>
</div>
<div class="tweet">
Michael's Tweet
<div class="panel-body">
<div class="row">
<div class="col-sm-1">
<form class="posticon" method="POST" action="">
<input type="hidden" name="srch_term" id="srch_term" value="Michael">
</form>
</div>
</div>
</div>
</div>
Больше информации .children()
на .find()
веб-сайте jQuery.
Комментарии:
1. Спасибо за отличную информацию.. Я знаю, что все идентификаторы также должны быть уникальными. Считайте это мозговым пердежом. Извините. Я не знал о дочерних элементах / найти разницу. Спасибо
Ответ №2:
Попробуйте это:
$(document).ready(function(){
$(document).on('click', '#tweet', function(){
$("#posticon").trigger("submit");
});
});