当我学习HTML时,CGI是王道,与服务器交互的正确方法是将<input>
标签放在<form>
标签内。当用户按下“提交”按钮时,HTTP GET或HTTP POST消息被发送到服务器,并且浏览器使用从服务器上的CGI程序返回的HTML代码刷新。
现在我又开始做网页了,我一直在学习JavaScript和jQuery。由于jQuery可以截取click
,keypress
和focusout
等事件,并且可以使用$.ajax()
和$.getJSON()
读取数据,因此仍然需要完全是<form>
标记?
如果我想支持关闭JavaScript的用户,可能还需要“真实表单”吗?
答案 0 :(得分:5)
表格仍然可以帮到你,但简短的答案是否定的,不是真的。
如果您有一组与某个AJAX请求相关的输入,则可能更容易将它们保留在自己的形式中以进行验证/序列化。例如:
$.ajax({
url: 'ajax/test.html',
dataType: 'json',
method: 'POST',
content: $('form#login_form').serialize(), // <-- Serialize elements only in
success: function(data) { // the login_form container.
$('.result').html(data);
}
});
根据您的要求,您可能需要保留表单,以便让关闭Javascript的用户感觉良好。您仍然需要提交表单,因此设置表格并且到位是个好主意。
答案 1 :(得分:1)
如果您使用的是ajax,只要您没有任何直接帖子或获取,就不需要表单标签。但是,它仍然是很好的HTML设计。
答案 2 :(得分:1)
您既可以提交,也可以不提交。它可以取决于您想要监听哪些表单元素进行更改。但你可以做一些像这样的事情:
<SELECT NAME="tree" onchange="doSomething( someVar );">
但同样,这取决于你想要操纵的页面的哪个元素。