javascript - 如何让 chrome 自动填充异步帖子

标签 javascript jquery html google-chrome post

我有一个表单,因为它是异步提交的

<input id="idField" type="text" placeholder="Enter id" />
<input type="button" value="submit ID"  id="submitBtn" />

$(document).ready(function () {
    $("body").on("click", "#submitBtn", function () {
        var id = $("idField").val();
        $.ajax({
            type: "post",
            url: "post.php",
            data: {
                "id": id
            },
            success: function () {
                alert("done");
            }
        });
    });
});

正因为如此,谷歌似乎 ( https://stackoverflow.com/a/11746358/1252748 ) 拒绝自动填充我过去输入的数据。解决这个问题的最佳方法是什么?

是这样的吗?

<form method="post"> 
<input id="idField" type="text" placeholder="Enter id" />
<input type="button" id="submit" class="fr gen-btn" value="Submit" onClick="postForm()" /> 
</form>

function postForm() {
    var id = $("idField").val();
    $.ajax({
        type: "post",
        url: "post.php",
        data: {
            "id": id
        },
        success: function () {
            alert("done");
        }
    });
}

最佳答案

在发现自己处于非常相似的情况之后,这是我建议的解决方案。

  1. 使用 FORM 标签包装您的输入
  2. 确保提交表单以确保浏览器存储输入字段值以供下次使用(以使用“自动填充”功能显示它们)

请参阅下面的 HTML 代码:

<form id="myForm" method="post" action="about:blank" target="_sink">
    <input id="idField" type="text" placeholder="Enter id" />
    <input id="submitBtn" type="button" value="submit ID" />
</form>
<iframe src="about:blank" name="_sink" style="display:none"></iframe>

<script type="text/javascript">
    // assuming jQuery is available
    $(document).ready(function () {
      $("#myForm").submit(function () {
        var id = $("#idField").val();
        $.ajax({
          type: "post",
          url: "//localhost/dummy/post.php",
          data: {
            "id": id
          },
          success: function () {
            alert("done");
          },
          error: function () {
            alert("Error"); // we expect an error here since we're not actually posting to a real server
          }
        });
      });
    });
</script>

当您在 idField 中输入一个值并按 Enter(或单击提交按钮)时,它会尝试使用 ajax post 请求将表单数据提交到远程服务器。 同时,它还会将表单提交到隐藏的 iframe,这使得 Chrome 能够存储值以重新用于自动填充。

我还制作了一个 jsFiddle 演示:http://jsfiddle.net/C5Qgf/

关于javascript - 如何让 chrome 自动填充异步帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16445463/

相关文章:

javascript - 在源和目的地之间绘制路径并连接所有点(城市)时,谷歌地图路径中出现意外的线条

javascript - 在 Javascript 或 jQuery 中,如何只删除第一个和最后一个标签?

java - 使用 Jsoup 替换树中所有文本节点中的文本

javascript - PCRE 中是否有 "negated alternation"或 "negated string classes"、 la "negated character classes"之类的东西?

javascript - 无法更改动态添加元素的属性

javascript - 检测多个元素何时位于浏览器屏幕顶部

javascript - 如何将无序列表分成两部分?

JavaScript 无法在 mac OS、iphone 中运行

javascript - toggleClass() 在点击标签时未按预期工作

javascript - 在javascript中将新单元格添加到表格