我正在实现一个类似于 stackoverflow 使用的投票系统。它与 ajax 一起使用,将 POST 请求发送到 url。我想要一种在不支持或启用 javascript/ajax 时优雅地失败的方法,甚至不考虑像/voteup/id 这样的 GET,因为我正在更改数据库。 最好的解决方案是什么?如果未启用 js,我要么考虑使用表单,要么干脆删除该功能。
SO 上至少有三个相关条目,但我无法插入多个超链接
最佳答案
将基本投票操作制作成迷你表单,然后使用 javascript 禁用其发布操作。
<form method=post action="hit-url">
<input type=hidden name=vote value="1" />
<input type=submit value="Vote Up" onSubmit="doVote(1);return false;" />
</form>
<form method=post action="hit-url">
<input type=hidden name=vote value="-1" />
<input type=submit value="Vote Down" onSubmit="doVote(-1);return false;" />
</form>
要将这些内容替换为支持 JavaScript 的用户的链接:
<div id="voteupbutton">
<form method=post action="hit-url">
<input type=hidden name=vote value="1" />
<input type=submit value="Vote Up" onSubmit="doVote(1);return false;" />
</form>
</div>
<script>
document.getElementById("voteupbutton").innerHTML="<a href='script:return false' onClick='doVote(1);return false;'>Vote up</a>";
</script>
我没有测试过以上内容。如果您使用 jQuery 或其他框架,将会有更优雅的方法来完成这一切。
关于javascript - 投票/评分系统 : How to fail gracefully when javascript isn't supported/enabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074298/