javascript Submit() 命令不发送我的帖子数据

标签 javascript jquery forms post

来自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/

相关文章:

javascript - 在 html 文档中使用表单时,如何在同一页面中显示数据?

javascript - 如何为每个对象 datetimepicker 创建动态数组

javascript - 添加事件监听器时如何将数据传递给函数?

forms - jQuery:使用 "live"方法阻止然后不阻止表单提交

javascript - 提交时重置 div 内容

angular - 动态 Angular 形式清除现有值

javascript - 触发单击 Edge 中的文件输入时不会触发更改事件

javascript - Highchart 实时服务器示例使用大量 CPU

jquery - 使用 jQuery 包含 XML 节点值

javascript - jquery 函数仅在控制台中工作