Rails 5:设置默认值时select,对应的jquery函数returns的值错误
Rails 5: When setting the default value of a select, the corresponding jquery function returns the wrong value
我正在更新我的 rails 应用程序。自从我达到 rails 5 后,我发现了与设置默认值有关的意外行为。
目前我在
- ruby 2.2.2
- rails 5.0.7.2
- jquery-rails '~> 4.4'
- jquery-ui-rails'>=6.0.1'
该应用正在使用 jquery3
我有以下选择:
<select name="cat_id" id="cat_id" title="Object" class="select outtaHere">
<option value="-1">option1</option>
<option value="1">option2</option>
<option value="2">option3</option>
</select>
我使用以下函数来 build 我的 select 标签:
def q_select_tag(model, name, model_class, title = nil)
options_list = model_class.all.collect{ |r| [r[ApplicationHelper::description_column], r.id] } #[["option1", -1], ["option2", 1], ["option3", 2]]
defaultOption = 1
select_tag name, options_for_select(options_list, defaultOption), :title => title, :class => 'select'
end
在我的 ERB 中,我这样称呼它:
<%= q_select_tag q, :cat_id, category, label %>
我在这个erb中还有一个jquery函数来修改我的表格:
<script type="text/javascript">
$(function() {
$('select#cat_id').change( function() {
console.log($(this).val());
})});
jQuery('select#cat_id').change();
</script>
当我 运行 它似乎工作正常,但是当我在默认选项 option2(值:1)和 option1(值:-1)之间切换时,我的 jquery 函数 returns总是-1。当我在选项 1 和选项 3 或选项 2 和选项 3 之间切换时,不会发生这种情况。
这是我的 firefox 的控制台,它在选项 2 和选项 1 之间来回切换,然后在选项 2 和选项 3 之间切换:
我试图在网上找到这个问题,但没有成功。
我做错了什么?
供参考:
我可以在更新到 rails 5.1.7 和 ruby 2.3.0 后解决问题,问题已解决。
我正在更新我的 rails 应用程序。自从我达到 rails 5 后,我发现了与设置默认值有关的意外行为。
目前我在
- ruby 2.2.2
- rails 5.0.7.2
- jquery-rails '~> 4.4'
- jquery-ui-rails'>=6.0.1'
该应用正在使用 jquery3
我有以下选择:
<select name="cat_id" id="cat_id" title="Object" class="select outtaHere">
<option value="-1">option1</option>
<option value="1">option2</option>
<option value="2">option3</option>
</select>
我使用以下函数来 build 我的 select 标签:
def q_select_tag(model, name, model_class, title = nil)
options_list = model_class.all.collect{ |r| [r[ApplicationHelper::description_column], r.id] } #[["option1", -1], ["option2", 1], ["option3", 2]]
defaultOption = 1
select_tag name, options_for_select(options_list, defaultOption), :title => title, :class => 'select'
end
在我的 ERB 中,我这样称呼它:
<%= q_select_tag q, :cat_id, category, label %>
我在这个erb中还有一个jquery函数来修改我的表格:
<script type="text/javascript">
$(function() {
$('select#cat_id').change( function() {
console.log($(this).val());
})});
jQuery('select#cat_id').change();
</script>
当我 运行 它似乎工作正常,但是当我在默认选项 option2(值:1)和 option1(值:-1)之间切换时,我的 jquery 函数 returns总是-1。当我在选项 1 和选项 3 或选项 2 和选项 3 之间切换时,不会发生这种情况。
这是我的 firefox 的控制台,它在选项 2 和选项 1 之间来回切换,然后在选项 2 和选项 3 之间切换:
我试图在网上找到这个问题,但没有成功。
我做错了什么?
供参考: 我可以在更新到 rails 5.1.7 和 ruby 2.3.0 后解决问题,问题已解决。