gpt4 book ai didi

javascript - 表单标签和 AJAX 请求

转载 作者:行者123 更新时间:2023-11-28 02:49:53 25 4
gpt4 key购买 nike

我用几个单选按钮和一个文本字段制作了一个简单的页面作为练习:

<html>
...

Student list: <input type="radio" name="list" value="students">
Lession list: <input type="radio" name="list" value="lessons">

<h2>Type the course code:</h2>

Code: <input type="text" name="code" id="code">
<input type="submit" id="submit">
</html>

然后我通过 Javascript 为按钮添加了一个监听器。

现在我通过 Javascript 从各个输入字段收集数据,并将它们打包到一个请求中:

function prepareRequest(req) {
var radios = document.getElementsByName("list");
var value;
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
value = radios[i].value;
}
}
var code = document.getElementById("code").value;
var url = "../AjaxServlet?value="+value+"&code="+code;
req.open("GET", url, true);
req.send();
}

我通过 Javascript 调用我的 servlet,获取我的数据,然后处理响应。

如果我想使用“纯”HTML 执行此操作,我会将这些输入包含在 FORM 标记中,如下所示:

<form action="../AjaxServlet" method="get">
...
<input type="submit" id="submit">
</form>

现在,当我点击提交时,servlet 被称为“通过”表单,它会自动发送它收集的所有数据。当然这是同步的,页面必须重新加载/重定向。

我想知道的是,对于 AJAX,是否需要表单标签?我所做的似乎很直观,从 DOM 获取输入元素,提取数据,然后手动将它们打包到请求中。这是对还是错?是否有标准或更好的方法来执行此操作?

最佳答案

这个答案假定使用 jQuery(你的问题不是,荣誉)。

使用 form 标签的好处之一是表单的序列化。允许以更简洁的方式将表单数据传递到您的处理页面。

它在表单验证方面也更简洁(IMO)。显然有很多方法可以验证表单输入,但您可以轻松地传递表单对象并搜索具有有效值的所需元素。

改编自Ajax and Forms在 Learn.jQuery.com 上。

虽然我同意 celerno 做你需要做的事,但要尽量少做。

关于javascript - 表单标签和 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com