【发布时间】:2012-07-12 18:50:52
【问题描述】:
用户登录到他的控制面板并看到他收到的消息。每条消息附近都有一个“回复”按钮。实现该按钮的正确方法是什么?
我看到三个主要选项:
-
使用链接:
<a href="customer.php?reply&messageid=1234">Reply</a>.缺点:
- 我们需要将该链接设置为看起来像一个按钮。因为我认为“回复”动作应该由一个按钮表示,而不是一个链接(在我看来,链接应该在链接到某些资源时使用,并且当我们在链接文本中有名词时;如果我们想做出一个动作并在标题中有动词(动作) - 应使用按钮)。
-
使用按钮:
<button onclick="location.href='customer.php?reply&messageid=1234'">Reply</button>`缺点:
- 用户必须启用 JavaScript。尽管根据我们的统计数据,我们 99.8% 的用户都启用了 JavaScript,如果他们不这样做,他们无论如何都很难在我们的网站上工作(我们有许多使用 JavaScript 实现的功能)。所以我认为我们 100% 的实际活跃用户都启用了 JavaScript。
-
使用
<input type="submit">:<form action="customer.php?reply" method="get"> <input name="messageid" type="hidden" value="1234" /> <input type="submit" value="Reply" /> </form>缺点:
- 我认为在这里使用表单是“人为的”。用户不输入任何内容。我们使用表单只是为了使我们的按钮工作。我还认为,当我们不更改任何内容而只需要向用户显示回复表单时使用 POST 请求 - 违反了 REST 原则。但即使使用 GET,我仍然认为在这种情况下使用表单是人为的。
其他一些注意事项:
- 在链接中使用按钮在 IE 中不起作用。
- 这是我们网站的私有部分,因此搜索引擎看不到它,我们真的不需要链接来帮助搜索引擎跟踪它并索引资源(这是在网络中使用链接而不是按钮的常用参数)
你会选择哪一个?为什么?
UPD。好吧,我决定使用链接。谢谢大家的讨论!
【问题讨论】:
-
<button>s 也提交一个表单,如果你想要比<input type="button">更具风格的东西...
标签: javascript html forms button hyperlink