【问题标题】:Rails 3 Jquery making select tag unobtrusiveRails 3 Jquery 使选择标签不显眼
【发布时间】:2012-05-22 06:47:36
【问题描述】:

我想让 select 更隐蔽。

我希望当用户选择特定选项时 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 unobtrusive-javascript


    【解决方案1】:

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

    方法一。

    <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());
    });
    

    【讨论】:

    • 你确定这不显眼吗?
    • 嗯。你的意思是“不显眼”下的ajax请求吗?我在回答中添加了 ajax 请求代码。
    • 这是不可能的,因为 HTML 不支持这种行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2011-06-12
    • 1970-01-01
    • 2011-11-21
    • 2014-08-08
    • 2012-01-10
    • 1970-01-01
    相关资源
    最近更新 更多