Javascript html表单标签的用途是什么

Javascript html表单标签的用途是什么,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我不理解html中表单标记的用途 我可以轻松地完美地使用任何输入类型,而无需使用表单标记。围绕输入进行包装似乎是多余的 此外,如果我使用ajax调用服务器端页面,我只需使用jQuery即可。唯一的例外是,我注意到,出于某种原因,您必须在表单标记周围包装一个上载脚本 那么,为什么表单仍然广泛用于文本输入等简单的事情呢?这似乎是一件非常陈旧和不必要的事情 我只是看不到它的好处或必要性。可能我遗漏了什么。HTML元素表示一个文档部分,其中包含向web服务器提交信息的交互控件 我们都熟悉html网页上的

我不理解html中表单标记的用途

我可以轻松地完美地使用任何输入类型,而无需使用表单标记。围绕输入进行包装似乎是多余的

此外,如果我使用ajax调用服务器端页面,我只需使用jQuery即可。唯一的例外是,我注意到,出于某种原因,您必须在表单标记周围包装一个上载脚本

那么,为什么表单仍然广泛用于文本输入等简单的事情呢?这似乎是一件非常陈旧和不必要的事情


我只是看不到它的好处或必要性。可能我遗漏了什么。

HTML元素表示一个文档部分,其中包含向web服务器提交信息的交互控件

我们都熟悉html网页上的表单。出于许多不同的原因,人们或公司询问我们的电子邮件地址、名称和网站URL。如今,在互联网上购买产品几乎是轻而易举的事,随着安全设备的出现,用于提交详细信息和血汗钱的方法通常是通过表单执行的

更多信息


您缺少的是对语义标记和DOM的理解

实际上,你可以用HTML5标记做任何你想做的事情,大多数浏览器都会解析它。上次我检查时,WebKit/Blink甚至允许,这显然违反了规范——Gecko没有这么多。然而,就语义而言,对标记执行任何您喜欢的操作都将毫无疑问地使其无效

为什么我们把
元素放在
元素里面?出于同样的原因,我们将
  • 标记放在
    元素的内部-它们就在这里。它在语义上是正确的,并且有助于定义标记。语法正确时,解析器、屏幕阅读器和各种软件可以更好地理解您的标记——当标记具有意义而不仅仅是结构时

    元素还允许您定义
    方法
    操作
    属性,这些属性告诉浏览器提交表单时要做什么。AJAX并不是一个100%覆盖率的工具,作为一个web开发人员,你应该练习优雅的降级——表单应该能够提交,数据传输,即使关闭JS

    最后,表单都在DOM中正确注册。我们可以通过JavaScript来了解这一点。如果您在此页面上打开控制台,并键入:

    document.forms
    
    您将在页面上获得所有表单的良好集合。搜索栏,评论框,答案框-所有正确的形式。该接口可用于访问信息以及与这些元素交互。例如,表单可以非常容易地进行编辑

    以下是一些阅读材料:

    注意:
    元素可以在表单之外使用,但如果您打算以任何方式提交数据,则应使用表单


    这是答案的一部分,我在这里把问题翻过来

    我是如何通过避免形式让我的生活变得更艰难的? 首先是容器元素。谁需要他们,对吧

    当然,您的小
    元素嵌套在某种容器元素中?他们不能只是在其他事情的中间漂浮。那么如果不是一个
    ,那又怎样呢?A
    ?A

    这些元素必须驻留在某个地方,除非您的标记乱七八糟,否则容器元素只能是一个表单

    没有?哦

    在这一点上,我脑海中的声音对于如何为所有这些不同的AJAX情况创建事件处理程序非常好奇。如果您需要减少标记以节省字节,那么一定有很多。然后,您必须为每个AJAX事件创建自定义函数,这些事件对应于每个元素的“集合”——您必须单独或通过类来针对这些元素,对吗?没有办法对这些元素进行一般性的分组,因为我们已经确定它们只是在标记周围游荡,做任何事情,直到需要它们为止

    因此,您可以自定义一些处理程序的代码

    $('searchButton')。在('click',函数(e)上{
    e、 预防默认值();
    var search=$(“#mySearch”);
    $.ajax({
    网址:'http://example.com/text',
    键入:“GET”,
    数据类型:“文本”,
    数据:“query=”+search.val(),
    成功:功能(数据){
    控制台日志(数据);
    }
    });
    });
    $('#login')。在('click',函数(e){
    e、 预防默认值();
    var user=$(“#用户名”),
    通过=$(“#密码”),
    rem=$(“#记住”);
    $.ajax({
    网址:'http://example.com/login',
    键入:“POST”,
    数据:user.add(pass,rem).serialize(),
    数据类型:“文本”,
    成功:功能(数据){
    控制台日志(数据);
    }
    });
    });
    
    
    搜寻
    保持登录状态
    登录
    
    如果您希望能够在不使用AJAX的情况下提交表单(这在开发的早期阶段可能很有用),那么表单标记仍然是必需的。但是,尽管可以使用javascript提交数据而不使用表单标记,但仍会想到一些好处:

  • 在某些情况下,使用表单标记可以帮助人们阅读和理解您的代码,向他们展示您的意图
  • 表单中提供了“提交”方法。如果您有一个带有输入[type=submit]的表单,并且该表单未被禁用,那么当有人在填写其他表单输入时点击“enter”时,该表单将被提交。您仍然可以通过监听输入元素上的“keydown”事件来实现这一点,但它是一个很好的ui,您可以通过表单标记免费获得它
  • 还有一些其他东西只适用于表单标记,或者更容易使用表单标记。开发人员最终会遇到这些情况,并决定在任何地方都使用它们并避免问题更容易。真的吗