您所在的位置:小祥子 » 编程 » CSS » 正文

【html】button按钮的一些问题

时间:2015-07-08 编辑:朱羽佳 来源:CnBlogs

问题:

button 按钮在不设置 type 属性时,在不同的浏览器作用不一样。举个例子:

html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="keywords" content=""/>
    <meta name="description" content=""/>
    <title>button按钮的一些问题</title>
</head>
<body>
    <form action="result.PHP" method="post">
        <input type="text" name="txt" placeholder="随便输入点什么吧!" autocomplete="off"/>
        <button>button点击提交</button>
    </form>
</body>
</html>

result.php:

<?php echo $_POST['txt'] ?>

我们发现,在 ie8 以上包括 ie8 点击按钮可以正常提交表单,但是在 ie6 和 ie7 下面,点击按钮没有反应。

原因:

为什么会有差异?因为 button 按钮没有设置 type 属性,在不同的浏览器中解析 button 的 type 类型不尽相同。

通过 w3school 可以发现,我们需要始终为 button 按钮规定 type 属性。Internet Explorer(经测试是 ie6 和 ie7)的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。具体内容点此了解。

最后我们修改下 demo:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="keywords" content=""/>
    <meta name="description" content=""/>
    <title>button按钮的一些问题</title>
</head>
<body>
    <form action="result.php" method="post">
        <input type="text" name="txt" placeholder="随便输入点什么吧!" autocomplete="off"/>
        <button type="button">button按钮type为button</button>
        <button type="submit">button按钮type为submit</button>
    </form>
</body>
</html>

PS:

写这篇文章的目的在于提醒自己在使用 button 时需要为标签指定相应的 type 类型。

关键词: