Tag: ruby on rails

AJAX调用只发送最后一项,而不是整个数组

这是我的AJAX调用: $(“.all_of_union”).live(“click”, function(){ id = window.location.href.split(“/”)[5] var data = {}; data.value = $(“.union input”).map(function(){ return $(this).val(); }).get(); data.type = ‘zip’; $.ajax({ type: “POST”, url: “/admin/emails/” + id + “/distributions”, dataType: “script”, data: data }); }); 如果我在我的控制台中做alert(data.value) ,那么它会正确显示所有邮政编码。 但是在我的Rails应用程序中仔细选择了断点,当它到达控制器时,实际只显示最后一个邮政编码。 即使我像这样发送AJAX调用: $.ajax({ type: “POST”, url: “/admin/emails/” + id + “/distributions”, dataType: “script”, data: { value: [“07005”, “07034”, […]

$(“form”)。submit(function(){在Firefox中不起作用

$(“form”).submit(function() { if ($(“#content”) != null) { $(“#content”).replaceWith(‘We are running as fast as our little ninja feet can go…’); } return true; }); 以上在Chrome上运行正常,但在Firefox上不起作用。 不知道为什么但是在Firefox中,表单实际上并未提交。 div替换有效但对提交没有爱,页面只是闲置。 这里的目的是捕获任何表单的提交并将一个微调器(CSS而不是图像)抛到页面上,直到返回post / put并且微调器被页面重载(非ajax)上的实际内容div擦除。 之前: 后: 代码已删除(现在显示的post): Email Password Forgot your password? Didn't receive confirmation instructions? Didn't receive unlock instructions? $(document).ready(function () { App.init(); $(“form”).submit(function(){ if ($(“#content”) != null) { […]

在AJAX上初始化Google地图刷新了部分内容

我可以显示带有标记的谷歌地图没有问题,但是当使用ajax刷新部分时,我无法在部分内显示地图。 我猜这是因为当使用ajax时,最终的初始化行没有被触发: function initialize() { var myLatlng = new google.maps.LatLng(-25.363882,131.044922); var mapOptions = { zoom: 4, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById(‘map-canvas’), mapOptions); var marker = new google.maps.Marker({ position: myLatlng, map: map, title: ‘Hello World!’ }); } google.maps.event.addDomListener(window, ‘load’, initialize); 那么我可以使用其中一个ajax成功处理程序来初始化地图吗? 我试过没有运气,但语法可能是错误的,我不知道在哪里放这个: $(document).ajaxSuccess(function() { google.maps.event.initialize; }); 有任何想法吗? 编辑: 我通过在链接中添加remote => true来加载属性/ […]

Rails:部分中的远程表单:工作一次,而不是两次

我在最后几天遇到了一个问题。 我想使用远程表单更新对象。 我第一次提交表单时基本上可以更新我的对象,但第二次不起作用。 所以,我有一个偏远的forms。 视图/任务/ _table_form.haml.erb %tr{:class => “tr_mission_#{mission.id} tr_mission”} = form_for(mission, :url => mission_path(mission), :html => { :remote => true , :method=> :put, :format => :js, :multipart => true, :class => “my_remote_form” }) do |f| = f.text_area :description, :size => “220×6”, :class => “fill_data” = f.submit ‘Update’, :class => “btn btn btn-inverse”, :disable_with => […]

使用输入元素上的修饰键触发单击事件

我正在为一些涉及用户按住Shift键点击复选框的function编写测试。 我正在使用$(‘input’).trigger($.Event(‘click’, { shiftKey: true })); 模拟那个。 但是当事件监听器被调用时, event.shiftKey属性总是在源自我的合成事件时报告为false ,而实际点击产生所需的效果。 更令人困惑的是,在非input元素上触发相同的事件似乎工作得很好。 例如,请参见http://jsfiddle.net/hus​​kssk1/ 。 我在我的浏览器(Chrome 39,OS X)和测试堆栈(Poltergeist 1.5.1 + PhantomJS 1.9.8)中都观察到了这种行为。 是什么导致了这个? 它有什么办法吗? PS我的完整测试堆栈是Ruby on Rails + RSpec + Capybara + Poltergeist + PhantomJS,如果你知道触发shift-click的更好方法,请告诉我!

为什么Rails无法在Internet Explorer的Ajax请求中访问会话?

我在sessions_helper中有以下代码: def current_user @current_user ||= User.find_by_remember_token(cookies[:remember_token]) end 这让我从任何控制器调用current_user来获取当前用户。 (我从头开始使用类似于Railstutorial或Railscasts的身份validation)。 我有一个名为lookup_result ajax请求,它检查服务器以查看特定结果是否已准备就绪。 $.get(“/lookup_result?id=”); 它转到以下控制器方法: def lookup result user = current_user # do things with user… end 这通常可以正常工作,但有时Rails无法获取current_user。 我怀疑问题是cookie或CSRF令牌在某些情况下无法通过ajax请求传递,但为什么它通常有效? 我如何修复它以便始终有效? 更新: 我不知道如何复制错误。 只有已登录的用户才能访问发送该请求的页面(尽管有人可以将ajax请求复制到另一个未登录的浏览器中)。 我用rollbar报告错误并保存请求数据。 当current_user失败时,这是user-agent的常用数据: Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; InfoPath.1; …) 这意味着Internet Explorer通过Ajax发送会话信息存在一些问题。 有人知道怎么修这个东西吗? 下面你可以看到它返回的所有数据类别,尽管它对于任何包含“session”的内容都是空的。 时间戳 message.request_data.headers.Accept message.request_data.headers.Accept编码 message.request_data.headers.Accept语言 message.request_data.headers.Cf-Connecting-Ip //(CF代表cloudflare) message.request_data.headers.Cf-Ipcountry message.request_data.headers.Cf雷 […]

jQuery-autocomplete滚动问题

我在我的应用程序中使用rails3-jquery-autocomplete 。 我遇到了以下问题:如果您在输入字段中输入内容以显示自动填充数据并在此之后滚动页面,则自动填充数据框不会随页面滚动。 它保持在同一个位置。 你可以看看我在这里面对的是什么。 请注意,此示例不是由我创建的,因此我不确定此处是否使用了相同的jquery插件。 然而问题是完全一样的。

Rails将ActiveRecord :: Relation作为json返回给ajax调用

嗨,我有一个ajax电话: $.ajax({ url: ‘ :users , :action => :search_user) %>’, data: {search: $(“#suchfeld”).val()} }) .done(function (data) { alert(msg); }) 现在我希望来自控制器的返回值,活动记录对象将作为json对象返回。 我试过这个: @users_search = User.where(“lastname LIKE ?”, “#{params[:search]}%”).to_json 但是我没有回到我想要的东西。 @users_search是一个对象,所有用户都对应上述(工作)查询。 我得到了som HTML代码而不是Active记录对象作为json对象 我想要一个json对象,因为我想迭代它 也试过这个: .done(function () { var array = ; alert(array); }) 数组始终为null 编辑: 将代码更改为: @userss = User.where(“lastname LIKE ?”, “#{params[:search]}%”) for user in @userss […]

rails 3 – ajaxformsajax:未被调用的成功事件

经过多次故障排除后,我无法弄清楚为什么我的表单是ajax:在rails 3中没有调用成功回调。 以下是我在视图中最终生成的代码: JS代码: $(function() { $(“#myform”).bind(‘ajax:success’, function(data, status, xhr) { alert(“form success”); console.log(data); console.log(status); }).bind(‘ajax:error’, function(xhr, status, error) { console.log(error); console.log(status); }); }); Ajax表格: 遵循表单发布到的操作中发生的逻辑: @foo = { :foo => “bar” } render(:json => @foo.to_json, :content_type => ‘application/json’, :layout => false) 我有Firebugged这整个请求/响应: It says 200 OK. And the Response Headers are: Cache-Control max-age=0, private, […]

‘show’事件不会在IE9中使用Rails中的Twitter Bootstrap Modal触发

我有一个涉及几个不同框架/库的问题,尽管主要是Twitter Bootstrap(js)和Rails。 我的应用程序中有一个链接,它响应了一些js: $(function() { var $modal = $(‘ @product, :customer => @customer, :booking => @booking ) %>’), $calendar = $modal.find(‘#calendar’), currentProduct = ;, initBookingCalendar; $(‘body’).append($modal); $modal.modal(‘show’); /* Booking Calendar */ initBookingCalendar = function(el, productId) { el.fullCalendar() … }; $($modal).on(‘shown’, function() { if($calendar.is(‘:empty’)) { initBookingCalendar($calendar, ); } }); }); 问题是由于某些原因,IE9中没有触发“显示”事件! 我在这里重现了这个问题: http : //jsfiddle.net/tvkS6/并通过这样做得到它: http […]