在防止默认表单行为时获取自动完成/建议的输入

时间:2009-09-23 14:41:25

标签: javascript jquery ajax forms

这里有趣的错误似乎仅限于IE和Webkit。 我有一个基本的表单设置:

<div id="output">Form output is displayed here</div>

<form id="myForm" action="#" method="post">
<input type="text" name="username" id="usernameInput" />
<input type="submit" value="Submit" />
</form>

现在如果我只是通过正常的页面刷新提交表单,下次我在输入字段中键入文本时,我将获得浏览器的默认自动建议下拉列表(这是预期的行为)。但是,如果我为了进行AJAX提交而高举表单提交行为:

$('#myForm').submit(function () {
    $('#output').text($('usernameInput').val());
    return false;
});

现在,当我提交表单时,输出div会更新,但是我输入到表单中的先前值不会被存储,并且在您键入时不会提出任何建议。

有没有人有这个问题的创意解决方案?也许是( gulp )iframe?

2 个答案:

答案 0 :(得分:1)

IE和WebKit只记住正常提交的值,并且由于您是通过AJAX提交的,因此这些引擎不记得这些值。我会使用jQuery插件来代替iframe,而不是this one。当然,使用该解决方案,您需要维护一个用户过去输入的内容列表,这应该不会太难。

答案 1 :(得分:0)

在控制提交中对这些修改进行测试:

$('#myForm').submit(function (e) {
    e.stopPropagation();
    $('#output').html($("#usernameInput").val() + "<br />");
});