最近在做一个HTML解析的引擎,在处理<FORM>表单时候特别混乱。在此根据近一周的经验总结一下HTML表单的提交规则。
<INPUT>
TYPE=BUTTON
永远不提交
<INPUT> TYPE=CHECKBOX 只在勾选后提交
<INPUT> TYPE=FILE 永远提交,即使为空值
<INPUT> TYPE=HIDDEN 永远提交,即使为空值
<INPUT> TYPE=IMAGE 永远提交,即使为空值
<INPUT> TYPE=PASSWORD 永远提交,即使为空值
<INPUT> TYPE=RADIO 只在勾选后提交,如果一组Radio没有任何勾选,全部不提交。
<INPUT> TYPE=RESET 永远不提交
<INPUT> TYPE=SUBMIT 点击哪个按钮,则提交这个按钮的值,其他的SUBMIT按钮值都不提交。
如果表单的提交行为是由JavaScript脚本触发的,则不提交任何值。
<INPUT> TYPE=TEXT 永远提交,即使为空值
<BUTTON>
TYPE=BUTTON
永远不提交
<BUTTON> TYPE=RESET 永远不提交
<BUTTON> TYPE=SUBMIT 点击哪个按钮提交表单,则提交这个按钮的值。
如果省略TYPE,IE默认为BUTTON,火狐默认SUBMIT。
<SELECT>
NONE
永远提交,即使为空值。
<TEXTAREA>
NONE 永远提交,即使为空值。