我认为这应该很容易,但我似乎无法找到答案。
我正在使用rails 4和jquery来识别何时在页面上更改多个选择框之一,如果是,请执行一些操作。
这是我的application.js文件中的相关代码:
$('body').on('change', 'select',function(){
*action*
});
我遇到的问题是,此代码会在我的应用程序中的任何页面上选择一个选择框。如何进行设置以便仅在特定页面上选择选择框更改?
我是否通过创建特定于我的视图的新.js文件来执行此操作?如果是这样,文件命名约定如何工作?
答案 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文件,有关它的最佳实践,请阅读以下文章: