用户登录到他的控制面板并查看他的传入消息。每条消息附近都有一个“回复”按钮。实现该按钮的正确方法是什么?
我看到三个主要选项:
使用链接:
<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。好吧,我决定使用链接。谢谢大家的讨论!