使用javascript和rails制作链接的下拉菜单

时间:2011-11-16 20:30:15

标签: javascript jquery ruby-on-rails

我正在尝试制作链接的下拉菜单。我在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

的管理员

任何帮助将不胜感激!

约翰

1 个答案:

答案 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.
});