1

Rails 3.1 に ajax コールバックを配置する必要がある場所で、ユーザーに文字列を表示するイベント beforSend をトリガーする必要があります。

= javascript_tag "$('#form_remote').bind('ajax:beforSend', function() {$("#mess").show();});"
%div{:id => 'mess', :style=>"display:none;"} Wait,please
= form_tag filling_schedule_of_workings_path, :remote => true, :html=>{:id => 'form_remote'} do
  %p{:style=>"margin:0;width:100%"}
    = label_tag 'C '
    = text_field_tag 'date_begin',nil,:size => 10
    = label_tag 'по'
    = text_field_tag 'date_end',nil,:size => 10
  %br
  %p{:style=>"margin:0;width:100%"}
    = label_tag 'Schedule class'
    = select_tag 'classifier_schedule',@classifier_schedule,:style=>"width:200px;"
  %p{:style=>"margin:0;width:100%"}
    = label_tag 'Schedule number'
    = select_tag 'schedule_number',@schedule_number,:style=>"width:200px;"
  %div{:style=>"height:25px;border-top:1px solid #CCC;margin:5px 0;"}
    = submit_tag "Doing", :style => "float:right;"

これは正常ですか?

助けてください!!

4

1 に答える 1

0

これをHAMLコードに含める必要はないと思います。通常、これを解決する方法は、メインアプリケーションのJSファイル内にこれらのイベントを登録することです。たとえば、AJAXイベントが開始されるたびに「お待ちください」アクションが表示されるようにしたい場合は、次のようにすることができます。

    /* Display a scrim to prevent mouse clicks when an ajax event is occurring. */
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
    if (!$('#progressIndicator').is(":visible")) {
        $('#progressIndicator').show();
    }
});
$('head').ajaxStop(function() {
    $('#progressIndicator').hide();
});

$('head').ajaxComplete(function(event, request, settings) {
    $('#progressIndicator').hide();
});
于 2012-04-17T15:55:35.493 に答える