jquery选择特定页面上的框更改

时间:2014-07-09 08:07:49

标签: javascript jquery ruby-on-rails

我认为这应该很容易,但我似乎无法找到答案。

我正在使用rails 4和jquery来识别何时在页面上更改多个选择框之一,如果是,请执行一些操作。

这是我的application.js文件中的相关代码:

$('body').on('change', 'select',function(){
      *action*
});

我遇到的问题是,此代码会在我的应用程序中的任何页面上选择一个选择框。如何进行设置以便仅在特定页面上选择选择框更改?

我是否通过创建特定于我的视图的新.js文件来执行此操作?如果是这样,文件命名约定如何工作?

4 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,但最干净的似乎是这样:在您希望由此函数处理的选择中添加一个类。我们称这个班为handlethis。相应地更改您的jQuery选择器。

您的HTML看起来像:

<select name="myselect" id="myselect" class="handlethis">
    <option value="1">option 1</option>
    <option value="2">option 2</option>
    ...
</select>

和JS:

$('body').on('change', 'select.handlethis',function(){
  *action*
});

答案 1 :(得分:0)

我有一个例子让你理解这一点。我希望它会对你有所帮助。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
    <script type="text/javascript">
    $(function(){
        $('select').change(function(){ // when one changes
            $('select').val( $(this).val() ) // they all change
        })
    })
    </script>
    <style type="text/css">

    </style>
    <title>HELLO</title>
</head>
<body>
(top of the page)
<select>
  <option value="big1">1big1</option>
  <option value="big2">2big2</option>
</select>
   other content here...
   (bottom of the page)
<select>
  <option value="big1">big1</option>
  <option value="big2">big2</option>
</select>
</body>
</html>

如果对您有帮助,请将其投票。

答案 2 :(得分:0)

为选择框提供id。并将该id用于呼叫功能

答案 3 :(得分:0)

要仅选择您想要的选项,只需在select中添加id或类,您的代码应如下所示:

HTML:

<select id="selector" name="selector">
    ...
</select>

JS:

$('#selector').change(function() {
    *action*
});

change()函数只是on('change')的快捷方式。

您可以添加一个特定于您的视图的新JS文件,有关它的最佳实践,请阅读以下文章:

Best way to add page specific javascript in a Rails 3 app?