我正在尝试制作链接的下拉菜单。我在rails中使用以下命令来生成下拉菜单:
select("post","id", current_user.admin.post.all.collect {|p| [p.title, post_path(p) ] }, {:include_blank => 'None', :prompt => 'Your Posts'})
由于这个红宝石,下拉菜单如下所示:
<select id="post_id" name="post[id]">
<option value="">Your posts</option>
<option value="">None</option>
<option value="/posts/1">Vacations</option>
</select>
我正在尝试使用以下javascript将用户发送到正确的网址:
$(document).ready(function() {
$("#post_id").change(function () {
var newwindow = $("#post_id option:selected").attr("id");
window.location.replace(newwindow);
})
});
然而,它试图转到/ admins / undefined并返回:
无法找到ID = undefined
的管理员任何帮助将不胜感激!
约翰
答案 0 :(得分:0)
您收到undefined
,因为您的<option>
个元素都没有id
个属性,也许您想查看它们的值:
$("#post_id").change(function () {
var newwindow = $("#post_id option:selected").attr("value");
if(newwindow)
window.location.replace(newwindow);
else
// Complain or something.
});
或者直接从<select>
:
$("#post_id").change(function () {
var newwindow = $("#post_id").val();
if(newwindow)
window.location.replace(newwindow);
else
// Complain or something.
});