0

我有一个具有主题文本字段的 Rails 应用程序,当我模糊文本字段时,用户输入主题代码 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!");
  });

如果你真的什么时候对失败做出反应,那么你需要使用$.ajax而不是$.post http://api.jquery.com/jQuery.ajax/

于 2012-09-13T13:30:40.143 回答