Если вы видите код jquery ниже, hv и commentid возвращают undefined. Для «hv» я пробовал «братьев и сестер», а для «commentid» я пробовал следующее :-( (идентификатор комментария находится во 2-й форме div / 2nd)
Что я делаю не так, пожалуйста?
Я всегда мог бы сделать несколько If, чтобы обнаружить отправляемую форму, а затем опубликовать нужное мне содержимое div. Однако, это может запутаться, так как будут поперечные сообщения туда и обратно
И я действительно предпочел бы использовать «скрытые» поля, чтобы сообщения могли работать хорошо в Ajax.
Любая помощь очень ценится
Код jquery:
<script type="text/javascript">
$(document).ready(function() {
// $("form").submit(function() { ///9675943/ne-udaetsya-prochitat-znachenie-skrytogo-svoistva-posle-ajax#9675946
$(document).on('submit', 'form', function() {
// Getting the form ID
var formID = $(this).attr('id');
//var hv = $('input[name=target]').val(); //this only worked for the 1st div, and hadn't worked for the 2nd div
//alert(hv);
//alert( $("#form2 input[name=target]").val() ); //works
alert ("formID at start is " + formID);
var hv = $(this).siblings('.target').val();
alert ("siblings is " + hv);
var commentid = $(this).parent().next('.commentId').val();
alert("comment id is " + commentid);
var formDetails = $('#'+formID);
$.ajax({
type: "POST",
url: 'ajax/',
data: formDetails.serialize(),
success: function (data) {
// Inserting html into the result div
$('#'+hv).html(data);
},
error: function(jqXHR, text, error){
// Displaying if there are any errors
$('#'+hv).html(error);
}
});
return false;
});
});
</script>
HTML-код:
<p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p>
<p> </p><p> </p><p> </p>
<div id="div_left" style="background-color:lightblue">
<form name="contact1" action="contact.php" method="POST" id="form1">
<div>Name: <input type="text" name="name" id="name" required /></div>
<div>Email: <input type="email" name="email" id="email" required /></div>
<input type="hidden" name="target" value="div_right">
<div><input type="submit" name="submit1" id="submit1" value="Submit" /></div>
</form>
<p>This is Div FORM1</p>
</div>
<hr>
<form name="contact2" id="form2">
<div id="div_right" style="background-color:yellow">
<br>Name: <input type="text" name="name" required />
<br>Message: <input type="text" name="message" required />
<input type="hidden" class="target" name="target" value="div_bottom">
<input type="submit" name="submit2" id="submit2" value="Submit" />
<p>This is DIV form 2</p>
</div>
<input type="hidden" name="commentid" value="commentid_is_7">
</form>
<div id="div_bottom" style="background-color:brown"><p>This is DIV Response. </p><p>This is DIV Response. </p><p>This is DIV Response. </p><p>This is DIV Response. </p><p>This is DIV Response. </p><p>This is DIV Response. </p></div>