我有下面的代码,我需要它来在div中发布帖子。
<script type="text/javascript">
$(function() {
$(".loader").click(function(event) {
event.preventDefault(); // stop the link loading the URL in href
$('#content').load($(this).attr('href'));
});
});
</script>
<form method="post">
some random inputs and checkbox's goes here
<input type="submit" href="/consulta/consulta_produto.php" class="loader" value="Consultar">
</form>
提交时,javascript成功地加载了名为“consulta_produto.php”的div中的内容,但是,我需要调整脚本以使其也可以发布。
另一个话题的人建议用$(".loader").parent("form").submit
代替$(".loader").click
,但是我不明白他的意思,我尝试了很多不同的方法来改变它,但都没有成功
我研究了一些关于如何使用javascript发布内容的主题,但是我不能修改它们中的任何一个来保持在div“consulta_produto.php”中加载内容的功能。
所以我想知道,当我从一些输入和复选框中发送数据时,如何调整我的javascript以保持在content div中加载consulta_produto.php?
发布于 2018-10-30 07:31:25
首先,您需要执行以下任一操作:
<script>
代码放在相关的超文本标记语言加载之后,或者$(document).ready(function() {...});
中,以达到与相同的效果
然后,您可以在表单click()
事件中执行代码,而不是在输入submit()
事件中执行代码。(这基本上就是你在另一个主题中提到的某人告诉你的)。我将您的提交输入更改为提交按钮,这并不重要。
因此,不是加载href
属性,而是将表单本身的action
属性加载到div中。
当然,您希望将实际数据与表单一起提交--没问题。您只需使用AJAX方法。这是为了阻止页面重新加载。
首先,您执行preventDefault()
来停止通常的页面重载。然后初始化$.ajax()
方法。
<div>
.‘参数包含一个将所有数据加载到指定成功中的函数
在PHP中避免页面重载时,AJAX是必不可少的,试试看吧!
<script type="text/javascript">
$(document).ready(function() {
$("#form").submit(function(event) {
event.preventDefault();
$.ajax({ //AJAX Method
data: $(this).serialize(), //Gets data from form
type: $(this).attr('method'), //Gets the method, in your case POST
url: $(this).attr('action'), //Gets the form action
success: function(r) {
$('#content').html(r); //Loads data into div
}
}); //End of AJAX Method
}); //End of form submit event
});
</script>
这是你的HTML:
<div id="content" style="width:100%; height:500px; ">
</div>
<form id="form" action="/consulta/consulta_produto.php" method="post">
some random inputs and checkbox's goes here
<button type="submit">Consultar<button>
</form>
https://stackoverflow.com/questions/53053697
复制相似问题