Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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
RubyOnRails的Javascript查询_Javascript_Jquery_Ruby On Rails 4 - Fatal编程技术网

RubyOnRails的Javascript查询

RubyOnRails的Javascript查询,javascript,jquery,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails 4,我想将j[3]值减去到售价文本字段中,并在损益字段中显示结果,但它只在页面的第一行工作,下一行的计算并不完美 函数sm(){ var txtFirstNumberValue=document.getElementById('txt1').value; var txtSecondNumberValue=document.getElementById('txt2').value; var结果=parseFloat(txtFirstNumberValue)-parseFloat(txtSecond

我想将j[3]值减去到售价文本字段中,并在损益字段中显示结果,但它只在页面的第一行工作,下一行的计算并不完美


函数sm(){
var txtFirstNumberValue=document.getElementById('txt1').value;
var txtSecondNumberValue=document.getElementById('txt2').value;
var结果=parseFloat(txtFirstNumberValue)-parseFloat(txtSecondNumberValue);
如果(!isNaN(结果)){
document.getElementById('txt3')。值=结果;
}
}
{:controller=>“users”,:action=>“rate_per_unit_report”}do|i|%>
@q、 :id=>“txt1”,:onkeyup=>“sm()”,:class=>“txt”,:readonly=>true%>
“txt2”,:onkeyup=>“sm()”,:class=>“txt”%>
“txt3”,:class=>“txt”,:readonly=>true%>
全部的

回答我……。
如果您可以使用jquery,那么简单的解决方案是:

只要改变这个:

<td><%=i.text_field j[3],:value=>@q,:id=>"txt1",:onkeyup=>"sm()",:class=>"txt",:readonly =>true%></td>
<td><%= i.text_field :selling_price,:id=>"txt2",:onkeyup=>"sm()",:class=>"txt"%></td>
<td><%= i.text_field :profit_loss,:id=>"txt3",:class=>"txt",:readonly =>true %></td>
@q,:id=>“txt1”,:onkeyup=>“sm()”,:class=>“txt”,:readonly=>true%>
“txt2”,:onkeyup=>“sm()”,:class=>“txt”%>
“txt3”,:class=>“txt”,:readonly=>true%>
为此:

<td><%=i.text_field j[3],:value=>@q,:id=>"txt1",:onkeyup=>"sm()",:class=>"txt text1",:readonly =>true%></td>
<td><%= i.text_field :selling_price,:id=>"txt2",:onkeyup=>"sm()",:class=>"txt text2"%></td>
<td><%= i.text_field :profit_loss,:id=>"txt3",:class=>"txt text3",:readonly =>true %></td>
@q,:id=>“txt1”,:onkeyup=>“sm()”,:class=>“txt text1”,:readonly=>true%>
“txt2”,:onkeyup=>“sm()”,:class=>“txt text2”%>
“txt3”,:class=>“txt text3”,:readonly=>true%>
并将sm功能更改为:

<script>
        function sm() {
          var txtFirstNumberValue = $(this).closest('tr').find('.text1').val();
          var txtSecondNumberValue = $(this).closest('tr').find('.text2').val();
          var result = parseFloat(txtFirstNumberValue) - parseFloat(txtSecondNumberValue);
           if(!isNaN(result))  {
          $(this).closest('tr').find('.text3').val(result);
    }
    }
    </script>

函数sm(){
var txtFirstNumberValue=$(this.closest('tr').find('.text1').val();
var txtSecondNumberValue=$(this.closest('tr').find('.text2').val();
var结果=parseFloat(txtFirstNumberValue)-parseFloat(txtSecondNumberValue);
如果(!isNaN(结果)){
$(this).closest('tr').find('.text3').val(result);
}
}

您可以使用jquery吗?这是一个问题,因为您在循环中使用相同的ID创建字段,所以必须创建动态ID