至于每个其他正常元素,< input type =“button”的名称 - 值对>将作为请求参数发送.
主要的警告只是< input type =“button”>和< button>元素在MSIE中无法正常工作.在所有MSIE版本中,按钮元素的value属性不会作为参数值发送,而是发送其正文(标记内容)!
此外,在IE6中还有另一个令人惊讶的错误:不仅会发送按下按钮的名称 – 值对,而且还会发送表单中每个其他未按下按钮的名称 – 值对!这样就无法区分服务器端的按下按钮.
与所有浏览器结合使用的解决方案是使用< input type =“submit”>并给它们一个不同的名称(或相同的名称,但不同的值).
例如.
与…结合
if (request.getParameter("validate") != null) {
// Validate button pressed.
} else if (request.getParameter("download") != null) {
// Download button pressed.
} else if (request.getParameter("submit") != null) {
// Submit button pressed.
}
要么
与…结合
String action = request.getParameter("action");
if ("Validate".equals(action)) {
// Validate button pressed.
} else if ("Download".equals(action)) {
// Download button pressed.
} else if ("Submit".equals(action)) {
// Submit button pressed.
}
最后一种方式提供了更多的可能性来抽象一个,而另一个更好地在Java级别.