1

我的意图是将数据从表单提交到服务器,而不是重新加载页面。它甚至不需要显示更新的数据。我正在使用 Firefox 进行开发,我正在寻找两种途径来获得我想要的东西:

  1. 我发现如果我在表单中放置一个按钮,该表单将与包含它的页面名称一起作为“GET”请求提交。本例中的表单标签没有方法属性,动作标签为空。我可以在 action 属性中输入我想要的功能,浏览器会将其余的表单字段应用于请求。我发现表单的制定很方便,但是浏览器会继续并用来自服务器的响应替换页面,从而使我远离原始页面。
  2. 从表单中取出按钮并将其专门连接到 javascript 函数允许我将函数注册到 onreadystatechange 事件。这具有运行功能而不是在服务器响应时重新加载页面的效果。这样做的不利方面似乎是该函数必须自己制定“GET”请求。

在我看来,javascript函数应该有一种方法来告诉表单使用它自己的设备提交,然后准备好处理响应。作为新手,我不熟悉此要求的“最佳实践”。

4

4 回答 4

1

您可以只使用 a<button>来发布您的详细信息。

function ajaxPage(postPage, paramList) {
    xmlhttp.open("POST",postPage,false);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(paramList);
    return xmlhttp.responseText;
}

在这种情况下,您postPage是一段相关代码的地址,并且paramList&分隔名称值对的列表。

亲切的问候,韦斯蒂

于 2013-01-31T23:00:58.950 回答
0

您可以在表单中添加“onsubmit”功能。

重要的是在该函数中返回 false 或调用 event.preventDefault() 以防止浏览器发布表单。

HTML:

<form onsubmit="javascript:myFunction()">
    ...
</form>

脚本:

function myFunction(evt) {
    // do your ajax call...
    evt.preventDefault();
}
于 2013-01-31T22:49:39.007 回答
0

真的不需要“提交”,您可以使用 ajax 搜索自动完成建议实现:

Onfocus On..即使您将所有表单数据发送到服务器端,您也希望通过服务器端响应自动完成而不是脓液,您可以为用户解释您需要的内容。

链接可能会对您有所帮助。

于 2013-01-31T22:55:19.287 回答
0

这就是我最终得到的结果,按照原始问题中的描述继续使用路径号 2,调用脚本的按钮在表单之外,因此没有提交事件。表单中的数据由脚本收集,如对相关问题的回答中所述:

https://stackoverflow.com/a/589100/747544

从那里,“get”请求由脚本制定

XMLHttpRequest.open("GET", "/myCommand?"+queryString ,true);
XMLHttpRequest.send(null);

该表单实际上已被脚本“扫描”而从未提交过,因此无需通过 onSubmit 事件返回 false 来阻止默认行为。或防止默认()。

于 2013-02-01T18:20:25.927 回答