Rails 3 Jquery 使 select 标签不显眼

Rails 3 Jquery making select tag unobtrusive

提问人:Lesha Pipiev 提问时间:5/15/2012 更新时间:5/15/2012 访问量:1528

问:

我想让选择更不显眼。

我希望当用户选择特定选项时,jquery会自动发送适当的请求,例如/conroller/action/1

<form id="some-id" method="post" data-remote="true" action="/templates?locale=uk" >
<select id="user-templates" data-remote="true" name="user-templates">
   <option href="/controller/action/1" data-remote="true" value="1">option-1</option>
   <option href="/controller/action/2" data-remote="true" value="2">option-2</option>
   <option href="/controller/action/3" data-remote="true" value="3">option-3</option>
   <option href="/controller/action/4" data-remote="true" value="4">option-4</option>
</select>
</form>

但相反,目前它会根据所选选项发送奇怪的请求,例如 http://127.0.0.1:3000/templates?locale=uk&some-id=1

多谢。

jQuery Ruby-on-Rails Ruby-on-Rails-3 不显眼的javascript

评论


答:

3赞 Pavel Strakhov 5/15/2012 #1

标记没有属性。您的选择是:hrefoption

方法 1.

<option onclick="location.href = '/controller/action/1'" 
  data-remote="true" value="1">option-1</option>

方法 2.JavaScript的:

$("#user-templates").change(function() {
  location.href = "/controller/action/" + $("#user-templates").val();
});

或者,如果您想在后台发送请求:

$("#user-templates").change(function() {
  $.get("/controller/action/" + $("#user-templates").val());
});

评论

0赞 Lesha Pipiev 5/15/2012
你确定这是不显眼的吗?
0赞 Pavel Strakhov 5/15/2012
嗯。你的意思是“不显眼”下的ajax请求吗?我在回答中添加了ajax请求的代码。
0赞 Pavel Strakhov 5/15/2012
这是不可能的,因为 HTML 不支持这种行为。