0

ユーザーがサブジェクトコードIDを入力するサブジェクトテキストフィールドを持つレールアプリがあり、テキストフィールドをぼかすと、テキストフィールドの横にサブジェクトの他の詳細が表示されます。

形:

 SC_ID: <%= f.text_field "subject1", :id => "subject1"%>

jquery:

 $('#subject1').blur(function() {
      var field_value = $(this).val();
      $.post("<%= validate_subject_path %>",{subject : field_value}, function(data) {
        success: function() {

          alert("Hahaha!");
        },
        error: function() {

          alert("Subject not found!");
        }
      });

    });

コントローラ:

 def validate_subject
    sc_id = params[:subject].to_i
    @subject = Subject.find_by_sc_id(sc_id)
    string = "#{@subject.id}"
    return string
    render :layout => false
   end

ルート:

 map.validate_subject '/subjects/validate_subject', :controller => "subjects", :action => 'validate_subject'

しかし、ぼかしようとすると、警告ボックスが出てきません。

4

1 に答える 1

0

あなたの$.post呼び出しは間違っています、それはこのようなものでなければなりません:

  $.post("<%= validate_subject_path %>",{subject : field_value}, function(data) {
      // not returning a hash
      alert("Hahaha!");
  });

http://api.jquery.com/jQuery.ajax/$.ajaxの代わりに使用する必要があるよりも、実際に障害に対応するタイミングがある場合$.post

于 2012-09-13T13:30:40.143 に答える