可以用button代替input type=”submit”吗


在ie下,<button>标记恐怕还存在几个不大不小的问题。

  1. 在一个表单里,如果有一个以上”submit”类型的<button>标签存在,在表单被提交时,不管你点击哪个<button>,所有<button>的值都会被post/get。
  2. <button>的缺省type属性被设置为”button”,但是在A级别浏览器下,应该设置为”submit”才对
  3. 如果你用javascript去访问<button>的value属性,IE却返回了<button>的innerHTML属性,很让人恼火。 (可以使用”getAttributeNode”方法来避免.)

例如,一段HTML:

在IE下,上面两个button的数据都会被提交。并且ie会提交这两个button的innerText而不是value。而其它浏览器仅仅提交你点击的那个button。

以上,应该尽量避免使用button标记。


11 responses to “可以用button代替input type=”submit”吗”

  1. button的值是写在节点之间的,实事上是innerHtml的值~这点上讲比input更灵活一点:例如,你可以设置一个value为TEST
    不过个人认为没有必要用button代替input吧

  2. 在只有一个button时,或者不放在form里的时候还是可以用的咯
    button标签可以有更多的样式,比如可以加个图片什么的。

  3. to vsky:
    在firefox下,情况有所不同,表单提交的是button的value属性而不是innerHTML

  4. 加个onclick=”return false”就不会提交了…
    要不你全用type=”button” ,提交的加一个onclick=”this.form.submit()”

  5. 我认为 Button 并不是用来代替 input 的.
    Button 是为了响应用户交互行为的.不是为了直接通过 Button 的 name 和 值 来向 server 提交数据的.
    虽然 button 可以提交 name:value. 但我认为提交数据应该用 input
    也就是说应该这样用 Button
    提示信息
    提交
    也就是说 button 里应该永远看不到 name 属性.

  6. 我也是觉得,button本来就不该出现在表单里,表单里的按钮最好是标记. 这样根本不会出现什么问题.

  7. 咋的写的HTML标签被屏蔽掉了?用不着吧?这家网站的程序员不会把它转成HTML实体字符吗?

  8. 就算是一张卫生纸,一条内裤,都有它自身的价值。关键是合理使用button标签。html被屏蔽是wordpress的默认行为,不过有部分标签是被保留的,比如b,strong,ul,li之类的。

Leave a Reply

Your email address will not be published. Required fields are marked *