使用rails3 javascript jQuery进行onChange事件

时间:2011-08-05 11:54:44

标签: javascript jquery ruby-on-rails-3 onchange

我有一个投票表格,您可以在其中添加另一个答案,然后当您这样做时,只会出现投票按钮......

编辑2 !!!

在我的观看/ index.html.erb中,我有:

<table>
<% @questions.each do |question| %>
<% for answer in question.answers %>


            <td>Other:</td>
            <td>        
              <%= form_tag('/vote/new_answer', :method => "post") do %>
              <%= hidden_field_tag('answer[question_id]', question.id) %>
              <%= hidden_field_tag('answer[user_id]', current_user.id) %>
            <div class="other_answer">
              <%= text_field_tag('answer[content]') %>
            </div>
          </td>
            <td>
                <div class="other_answer_button", hidden='true'>
              <%= submit_tag('Vote') %>
                </div>
<% end %>
<% end %>

在我的application.js文件中,我有:

$(function() {
    $(".other_answer input").change(function() {
        if ($.trim($(this).val()) == "") {
            $(".other_answer_button").hide();
        }
        else {
            $(".other_answer_button").show();
       }       
    });
});

仍然是相同的:

现在它有效......但如果我在其中一个文本字段中放入一些文本,则会出现所有投票按钮。它只应该在特定答案上显示一个投票按钮。

我是否应该以某种方式为每个文本输入字段添加增量ID以及投票按钮?

任何? 问候, 泰斯

1 个答案:

答案 0 :(得分:1)

实际上还有很少的其他东西需要在你的js代码中进行修改:

$(function() {
    $(".other_answer input").change(function() {
        if ($.trim($(this).val()) == "") {
            $("input", $(this).parents("td").next()).hide();
        }
        else {
            $("input", $(this).parents("td").next()).hide();
       }       
    });
});

解决方案非常依赖于标记,并且选择器可能无法正常工作,因为我没有经过测试,所以尽量不要尝试使用它,如果不是的话。