Javascript HTML输入自动完成

Javascript HTML输入自动完成,javascript,html,autocomplete,Javascript,Html,Autocomplete,我有一个带有一些输入字段的页面。此页面中的数据将发送到服务器,而不使用表单提交。我有一个收集数据、创建JSON并使用Ajax调用将其发送到服务器的JavaScript 这种情况下的问题是,浏览器不会保存数据,以便在用户下次填写相同表单时提供自动完成功能 有没有办法避免这种情况?我需要一种方法来提供自动完成!有什么把戏吗 我发现,当附加了一个实际的表单并且它的提交事件被实际触发时(即使数据是由AJAX发送的),autocomplete也可以工作。我建议使用带有提交按钮的表单,并通过Javascri

我有一个带有一些输入字段的页面。此页面中的数据将发送到服务器,而不使用表单提交。我有一个收集数据、创建JSON并使用Ajax调用将其发送到服务器的JavaScript

这种情况下的问题是,浏览器不会保存数据,以便在用户下次填写相同表单时提供自动完成功能


有没有办法避免这种情况?我需要一种方法来提供自动完成!有什么把戏吗

我发现,当附加了一个实际的表单并且它的提交事件被实际触发时(即使数据是由AJAX发送的),autocomplete也可以工作。我建议使用带有提交按钮的表单,并通过Javascript(附加到表单的
onsubmit
事件)拦截提交,以防止提交,并通过AJAX执行


使用适当的HTML表单并防止提交,而不是只使用输入字段,还有一个好处,就是当用户按enter键时激活
onsubmit
处理程序。我发现这对于用户来说非常有用。

您是否尝试过中概述的方法。这对我有用

基本上,点击表单的submit按钮,让表单在隐藏的iframe中打开一个空页面。这显然是一个黑客行为,但它确实点击了表单提交按钮,提交表单并打开一个新页面,因此在我签入的每个浏览器中都能正常工作

要在此处引用示例标记,请执行以下操作:

<iframe id="remember" name="remember" class="hidden" src="/content/blank">    
</iframe>

<form target="remember" method="post" action="/content/blank">

  <fieldset>
    <label for="username">Username</label>
    <input type="text" name="username" id="username" value="">
    <label for="password">Password</label>
    <input type="password" name="password" id="password" value="">
  </fieldset>

  <button id="submit-button" type="submit" class="hidden"></button>

</form>

用户名
密码

然后使用
$(“#提交按钮”)触发提交。通过ajax处理表单时,单击()

我使用html5浏览器存储来处理这类事情。对它有一个很好的介绍,它允许大多数现代浏览器在客户端进行数据持久化。您可以使用它来捕获表单数据,并随时重新呈现它。

您可以尝试使用jQuery自动完成

函数DefaultCtrl($scope){
$scope.names=[“约翰”、“比尔”、“查理”、“罗伯特”、“阿尔班”、“奥斯卡”、“玛丽”、“席琳”、“布拉德”、“德鲁”、“丽贝卡”、“米歇尔”、“弗朗西斯”、“琼”、“保罗”、“皮埃尔”、“尼古拉斯”、“阿尔弗雷德”、“杰拉德”、“路易斯”、“阿尔伯特”、“爱德华”、“贝诺伊特”、“纪尧姆”、“尼古拉斯”、“约瑟夫”];
}
角度.module('MyModule',[])。指令('autoComplete',函数($timeout){
返回功能(范围、IELENT、iAttrs){
自动完成({
来源:范围[iAttrs.uiItems],
选择:函数(){
$timeout(函数(){
iElement.trigger('input');
}, 0);
}
});
};
});

选定={{selected}}

希望这对您有所帮助。您可能需要对这个问题稍加详细说明。您希望每个用户下次再次看到相同的数据,还是希望所有用户在自动完成中看到相同的数据。根据答案的不同,anhnv或MuppetGrinder的答案可能是最好的。我指的是浏览器自动完成机制。当用户返回表单时,当您双击或开始键入输入字段时,浏览器会显示您在该字段中输入的所有值(我认为在某些浏览器中,如Firefox,它称为表单历史记录)。这意味着您希望用户只看到他们以前输入的内容,你不想让他们看到其他用户可能输入的东西?没错。仅在表单的该字段上键入一次的值。是浏览器的自动完成功能。但这仅在提交表单时有效。
autocomplete
的默认值为
on
。所以,我认为这不会有什么不同。你是对的。当您想要禁用自动完成时,它作为“关闭”属性更有用。我已经更新了我的答案。除非我遗漏了什么,否则OP的问题中没有提到角度,这个答案似乎取决于OP没有提到使用的工具。