我使用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次)当我输入字段时,这不会发生,只发送一次数据。可能是什么?
答案 0 :(得分:0)
您可以确保没有其他事件绑定到它。
$("RutaId").val(RutaId).unbind().change();
或者你可能需要多次jquery并重复事件。 也可能是更改事件冒泡并多次触发它。
希望它有帮助! 干杯