来自this earlier thread我以为我了解到表单数据可以使用 javascript Submit() 命令通过 POST 方法发送。但我无法让它发挥作用。这个演示就目的而言没有明显意义,但请耐心等待。我只是想测试这个似乎对我不起作用的特定命令。你能帮我么?单击常规提交按钮可以正常发送帖子数据,但通过链接激活 JavaScript 则不行。
<html><body>
<?php
$self = $_SERVER['PHP_SELF'];
$posttext = file_get_contents('php://input');
echo "Received input: ".chr(34).$posttext.chr(34)."<br><br>";
echo "<form id='test' action='{$self}' method='post'>";
?>
Please fill in the fields with any text:<br><br>
foo: <input type="text" name="foofield"><br><br>
bar: <input type="text" name="barfield"><br><br>
<input type="submit" value="Submit button works"><br><br>
<a href="" id="submitlink">Submitting by JS not working – why?</a>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
jQuery(function($) {
$(document).ready(function(){
$("a#submitlink").click(function(){
alert("Yes, the link has been clicked. It is not that.");
$("form#test").submit();
});
});
});
</script>
</body></html>
最佳答案
您需要:event.preventDefault();
<a>
中的默认行为。问题是,如果您不这样做,页面会重新加载,这就是 <a>
的原因。标签确实如此。因此,即使您提交了数据,您也会刷新所提交数据丢失的页面。
$("a#submitlink").click(function(event){
event.preventDefault();
$("form#test").submit();
});
另一个解决方案是添加 #
在 href
<a>
的标签如:
<a href="#" id="submitlink">Submitting by JS not working – why?</a>
这也将防止 <a>
标记进行刷新。
关于javascript Submit() 命令不发送我的帖子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46501115/