使用rails

时间:2017-08-03 01:00:23

标签: javascript ruby-on-rails ruby ajax ruby-on-rails-4

我使用ajax发送字段的值并以这种方式加载带有记录的选择框:

  <%= text_field_tag :search, "", id:"RutaId", class:"", style: "display:none;", :'data-remote' => 'true', :'data-url' => url_for(:controller => 'reldaycli', :action => 'busqueda_vendedores_por_ruta', format: 'js')  %>

当点击表格的行时,使用javascript隐藏和填充此字段,这是javascript的功能:

 $("#container_rutas tr").dblclick(function(){
     $(this).addClass('selected').siblings().removeClass('selected');
     var Ruta=$(this).find('.Ruta').html();
     var RutaId=$(this).find('.RutaId').html();
     $("#Ruta").val(Ruta);
     $("#RutaId").val(RutaId);
     $('#vendedor').prop('disabled', true); 
     $('#addruta').modal('hide');

  });

问题在于,这种方式我用来将数据发送到ajax(即字段中的'data-remote')的方法没有反应,除非它是在字段中写的,但是因为它是一个隐藏字段将使用ajax函数来填充它

我一直在研究并找到了将.change方法添加到javascript函数中的字段的解决方案,如下所示:

$("#RutaId").val(RutaId).change();

利用.change发送它,问题是它多次向控制器方法发送相同的数据,因此它执行ajax进程并多次加载相同的数据(连续2或3次)当我输入字段时,这不会发生,只发送一次数据。可能是什么?

1 个答案:

答案 0 :(得分:0)

您可以确保没有其他事件绑定到它。

$("RutaId").val(RutaId).unbind().change();

或者你可能需要多次jquery并重复事件。 也可能是更改事件冒泡并多次触发它。

希望它有帮助! 干杯