input中type为submit和button时,在各浏览器下提交的表单数据不同

以下“有” 表示在后台表单有按钮数据,无表示在后台表单中无按钮数据。

同步提交表单:

<form id="form" method="post" id="TemplateEdit" class="g_form">
<input id="s1" name="data[sumbit]" type="submit" value="submit" >
<input id="s2" name="data[button]" type="button" value="button">
</form>

 

                     FF     IE7   chrome

 sumbit          有      有      有

 button          无      无      无

 

异步提交表单:

ExpandedBlockStart.gif代码
<form id="form" method="post" id="TemplateEdit" class="g_form">
<input id="s1" name="data[sumbit]" type="submit" value="submit" >
<input id="s2" name="data[button]" type="button" value="button">
</form>
<script>
    $(document).ready(function(){
        $("#s1").click(function(){
            $("#form").submit();
        });
        $("#s2").click(function(){
            $("#form").submit();
        });
    });
</script>

 

点s1   

                     FF     IE7   chrome

 sumbit          有      有      有

 button          无      无      无

 

点s2   

                     FF     IE7   chrome

 sumbit           无     无      无

 button          无      无      无 

 

转载于:https://www.cnblogs.com/kuncai/archive/2010/11/03/1868252.html

<think>首先,用户的问题是关于HTML中<button><input type='submit'>在功能使用场景上的区别。我需要基于系统级指令来回答: 1. **行内数学表达式**:使用$...$格式。但这个问题是关于HTML的,没有数学内容,所以可能不需要。我会确保如果有任何数学,使用正确格式。 2. **独立公式**:使用$$...$$并单独成段。同样,这里可能不适用。 3. **LaTeX语法正确**:确保任何数学表达正确。 4. **使用中文回答**:整个回答必须是中文。 5. **生成相关问题**:在回答后添加相关问题。 6. **引用标识**:在引用的段落末尾自然地添加引用标识,如[^1]。参考的引用已经提供:[^1]到[^5]。 用户提供的引用内容是关于HTML中<button><input type="button">或<input type="submit">的区别。我需要整合这些信息来回答用户的问题。 关键点总结: - **<button>**: - 是一个闭合标签,可以包含文本、HTML内容(如图像),甚至子元素。 - 默认类型是"submit",如果不指定type属性,在表单中会提交表单。 - 支持伪元素(如::before, ::after),更容易样式化。 - 在不同浏览器中样式行为更一致。 - 支持表单相关属性如formaction、formenctype等,即使按钮不在表单内。 - 有更好的可访问性语义。 - **<input type="submit">**: - 是一个自闭合标签,只能通过value属性设置按钮文字,不能包含其他内容。 - 默认是提交按钮,用户点击后会自动提交表单。 - 在某些浏览器中默认样式可能不同。 - 需要额外ARIA属性来增强可访问性。 用户具体问的是<button><input type='submit'>的区别,所以我需要聚焦在这两个上。 从引用中: - 引用[1]:<button>可以包含HTML,支持伪元素,默认type="submit"。 - 引用[2]:<button>在表单中未指定typesubmit一样提交表单。 - 引用[3]:<button>更容易样式化,支持表单相关属性,有更好的可访问性。 - 引用[4]:<button>可以包含多媒体内容,但可能有兼容性问题。 - 引用[5]:<input type="submit">是输入字段,通常是简单按钮;<button>允许更丰富的内容。 回答结构: - 保持清晰,逐步解释。 - 先介绍两者,然后比较功能使用场景。 - 最后添加相关问题。 回答大纲: 1. **介绍**:简要说明两者都是用于表单提交的按钮。 2. **功能区别**: - 内容能力:<button>可以包含HTML内容;<input type="submit">只能有文字。 - 默认行为:<button>默认type="submit",会提交表单;<input type="submit">总是提交表单。 - 样式灵活性:<button>更容易样式化,支持CSS伪元素。 - 表单属性:<button>支持formaction、formenctype等属性。 - 兼容性可访问性:<button>有更好的语义一致性。 3. **使用场景**: - 当需要自定义按钮内容(如图文结合),使用<button>。 - 当只需要简单文字按钮,<input type="submit">也适用。 4. **总结**:推荐使用<button>以获得更多灵活性。 5. **相关问题**:生成2-3个相关问题。 生成相关问题: - 例如: 1. 如何为<button>添加自定义样式? 2. 在表单提交中,如何处理按钮的默认行为? 3. <button><input type="button">有什么区别? 确保引用标识:在回答中,当引用内容,添加[^1]等。例如,根据引用[^3],<button>支持伪元素。 最终回答: - 用中文。 - 结构清晰。</think>### HTML中<button><input type='submit'>的区别 在HTML中,`<button>``<input type='submit'>`都用于创建表单提交按钮,但它们的功能、使用场景特性有显著差异。以下我将逐步解释它们的区别,帮助您更好地理解何使用哪种元素。回答基于可靠的HTML标准常见实践[^3][^4][^5]。 #### 1. **标签结构与内容能力** - **`<button>`**: - 这是一个闭合标签(如`<button>点击我</button>`),可以包含文本、HTML内容(如图像、图标或其他元素),甚至子元素。例如: ```html <button type="submit"> <img src="icon.png" alt="图标"> 提交表单 </button> ``` - 默认情况下,如果不指定`type`属性,其类型为`submit`(在表单中点击会自动提交表单)[^1][^2]。建议显式声明`type`属性(如`type="submit"`)以避免意外行为。 - **`<input type='submit'>`**: - 这是一个自闭合标签(如`<input type="submit" value="提交">`),只能通过`value`属性设置按钮文字。它不能包含任何HTML内容或子元素,只能显示纯文本[^3][^4]。 - **关键区别**:`<button>`更适合需要丰富内容(如图文结合)的场景,而`<input type='submit'>`仅适用于简单文本按钮[^4][^5]。 #### 2. **功能与默认行为** - **`<button>`**: - 默认类型为`submit`,因此在表单中点击会自动提交表单。但您可以通过`type`属性指定其他行为: - `type="submit"`:提交表单(默认)。 - `type="reset"`:重置表单输入。 - `type="button"`:普通按钮,无默认行为[^1][^3]。 - 支持表单相关属性,如`formaction`(指定提交URL)、`formenctype`(设置编码类型),即使按钮不在表单内部(通过`form`属性关联表单)。这允许更灵活的提交控制,例如提交不同地址[^3][^5]。 - **`<input type='submit'>`**: - 总是作为提交按钮,点击自动提交表单。它没有`type`的其他选项(如`reset`或`button`),且不支持`formaction`等高级属性。功能相对单一,主要用于标准表单提交[^4][^5]。 - **关键区别**:`<button>`提供更细粒度的控制扩展功能(如自定义提交逻辑),而`<input type='submit'>`行为固定,适合简单提交需求[^3][^5]。 #### 3. **样式与灵活性** - **`<button>`**: - 更容易样式化,支持CSS伪元素(如`::before``::after`),允许添加图标、动画等效果。在不同浏览器中样式表现更一致[^3]。 - 示例:通过CSS轻松实现悬停效果。 ```css button:hover::after { content: "→"; color: blue; } ``` - **`<input type='submit'>`**: - 样式受限,不支持伪元素。默认样式可能因浏览器而异(如按钮大小或边框),需要更多CSS覆盖来统一外观[^3][^4]。 - **关键区别**:如果您需要高度自定义的按钮设计,`<button>`是更优选择;`<input type='submit'>`在简单场景下更轻量,但样式灵活性低[^3]。 #### 4. **兼容性与可访问性** - **`<button>`**: - 语义更清晰(表示一个可交互按钮),默认有较好的可访问性,适合屏幕阅读器。现代浏览器(包括IE9+)支持良好,但旧版IE(如IE8)可能需要额外处理默认行为[^2][^3]。 - **`<input type='submit'>`**: - 语义较弱,可能需要ARIA属性(如`aria-label`)来增强可访问性。浏览器兼容性普遍良好,但样式差异可能影响用户体验[^3][^4]。 - **关键区别**:`<button>`在可访问性语义化上更优,尤其对于无障碍网站;`<input type='submit'>`在兼容旧系统可能更稳定[^3]。 #### 5. **使用场景推荐** - **使用`<button>`**: - 需要按钮包含图像、图标或多行文本。 - 需要自定义提交逻辑(如不同表单动作)。 - 重视样式一致性可访问性。 - 示例:电商网站的“购买”按钮,包含购物车图标。 - **使用`<input type='submit'>`**: - 只需简单文本按钮,且表单提交逻辑标准。 - 追求代码简洁性(自闭合标签更短)。 - 示例:登录表单的标准“提交”按钮。 - **最佳实践**:优先使用`<button>`以获得更多功能控制权,但确保显式设置`type`属性(如`type="submit"`)[^3][^5]。 #### 总结 `<button>``<input type='submit'>`的核心区别在于内容能力、功能扩展性样式灵活性。`<button>`支持富内容、高级表单属性,并易于样式化,适合复杂交互;而`<input type='submit'>`更轻量,但功能有限,适合简单场景。在大多数现代Web开发中,`<button>`是推荐的选择,除非有特定兼容性需求[^3][^4][^5]。 如果您有具体代码示例或场景,我可以进一步分析!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值