Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用rails3 javascript jQuery的onChange事件_Javascript_Jquery_Ruby On Rails 3_Onchange - Fatal编程技术网

使用rails3 javascript jQuery的onChange事件

使用rails3 javascript jQuery的onChange事件,javascript,jquery,ruby-on-rails-3,onchange,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>

我有一个投票表,你也可以添加另一个答案,然后当你这样做时,只有投票按钮应该出现

编辑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 %>
依然如此:

现在它工作了。。。但如果我在其中一个文本字段中输入一些文本,所有投票按钮都会出现。它应该只在具体答案上显示一票按钮

我是否应该为每个文本输入字段和投票按钮添加一个增量id

有人吗? 当做
Thijs

实际上,js代码中还有一些其他东西需要修改:

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

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

在js中,将
onChange(function)
更改为
change(function)
。不,什么都不做。。。无论如何谢谢你!您已经隐藏了submit按钮,但是您正在修改包含它的div(并且它没有隐藏的attr)。现在您正在违反html的规则,属性id是唯一标识元素的,不应该有具有相同id的元素!,所以第一件事是将id更改为类,假设您将id更改为类,将更新答案,但解决方案非常依赖于标记。您的意思是因为它是一个数组,(一个表),所以有多个元素具有相同的id。。。所以它应该是…等等?谢谢,但还是不起作用。。。textfield的调用方式是否有问题?是否应该正确?并且是:if($.trim($(“#其他_答案”).val()==“”)正确,因为现在如果字段为空则为真,并且仅当字段至少有一个字符时才应显示按钮。是!!这几乎是完美的。。。(我还切换了显示和隐藏)但现在它只在我离开输入字段时显示“投票”按钮(在我键入某些内容后),我必须单击输入字段以外的其他内容。。。那么如何在输入过程中更新它呢?我还把输入放在$(“#其他_答案_按钮输入”)后面,就像这样。只是现在-我有一系列问题-当我在tet字段中键入并走出该字段并再次单击时,所有投票按钮都会出现。。。查看编辑的问题它工作得非常好$(这个)。父母(“td”)。下一个()成功了!!现在我需要弄清楚如何在每次按键后检查…$(“.other_answer input”).keyup(function()
$(function() {
    $(".other_answer input").change(function() {
        if ($.trim($(this).val()) == "") {
            $("input", $(this).parents("td").next()).hide();
        }
        else {
            $("input", $(this).parents("td").next()).hide();
       }       
    });
});