我試圖用給ajaxForm提交模式窗體和顯示模式本身的響應。但是,我得到未捕獲的類型錯誤(...)。ajaxForm不是一個函數。 基本上我想創建一個教訓創建表單模式窗體和必須提交,我的應用程序由兩個API控制器和前端控制器。uncought TypeError:ajaxForm不是在rails 5中的函數嗎?
api!
param_group :lesson
description 'creates a lesson'
example "
{
'id': 12,
'title': 'MUDRAS',
'active_video_id': 3,
'description': 'Description of the lesson',
'points': null,
'is_public': '1',
'videos': [
{
'video': {
'id': 1,
'video': {
'url': '/uploads/video/video/1/250-authentication-from-scratch.mp4'
},
'title': null,
'storage_type': 'Lesson',
'storage_id': 12
}
},
]
}"
def create
@lesson = Lesson.new(lesson_params)
@lesson.creator = current_user
if @lesson.save
render json: {
success: true,
message: "Lesson created Successfully"
}
else
render json: { success: false, message: "Could not Create : #{@lesson.errors.full_messages.join(', ')}" }
end
end
def new
@lesson = Lesson.new
end
上面的代碼是下面的代碼我的API controller.The是我的前端控制器和課相關形式。
def create
@lesson = Lesson.new(lesson_params)
if @lesson.save
render json: {
success: true,
message: "Lesson Created Successfully"
}
else
render json: {
success: false,
message: "Lesson Creation Failed"
}
end
end
我需要在課程索引頁面顯示「新課程」按鈕。 教訓/ index.html.erb
<% unless current_user.student? %>
<div class="container-fluid">
<div class="col-md-3 col-sm-3 text-left">
<div id="newLesson" class="lesson-category btn-danger" lesson_url="<%= new_lesson_path %>">
<i class="fa fa-plus"></i> ADD LESSON
</div>
</div>
</div>
<div class="hidden" id="newLessonForm">
<% @lesson = Lesson.new ; @lesson.videos = [Video.new] %>
<%= render "lessons/form" %>
</div>
<% end %>
<%= render "shared/primary_modal" %>
<div class="container-fluid">
<div class="col-md-3 col-sm-3 text-left">
<h2 class="main-tab tab-active">LESSONS</h2>
</div>
<div class="col-md-9">
<div class="col-md-12 text-right">
<h2 class="main-tab tab-inactive"><a id="responsesLink" class="blacko" href="#"><%= "MY" if current_user.student? %> RESPONSES</a></h2>
</div>
</div>
<div class="col-md-12"><hr/></div>
<!-- Lessons of this course Go here -->
<div class="col-md-3">
<% @lessons.each do |lesson| %>
<div id="lesson_<%= lesson.id %>" class="pill video-view lesson-load" data-lesson-id="<%= lesson.id %>" data-src="<%= lesson.active_video_url %>"><%= lesson.title %></div>
<% end %>
<!-- <div class="pill pill-inactive">Something</div> -->
</div>
<!-- Lesson Content goes here -->
<div class="col-md-9">
<div class="row">
<div class="col-md-12">
<%= render "shared/video_player" %>
</div>
</div>
<div id="lessonContent">
</div>
</div>
</div>
<script>
$("#newLesson").click(function(){
var lesson_path = $(this).attr("lesson_url");
$.get(
lesson_path,
function(content){
$("#primaryModalContent").html(content);
$("#format").val('js');
$("#primaryModal").modal("show");
}
);
});
</script>
我的教訓創作形式給出一個部分。
<div class="col-md-12">
<%= simple_form_for @lesson, html: {class: "newLessonform"} do |f| %>
<%= f.input :title, label: "Lesson Title", required: false %>
<%= f.input :description, required: false, as: :text %>
<%= f.input :points, required: false, as: :integer %>
<%= f.input :is_public, label: 'Check to Make this lesson public', as: :boolean %>
<div class="col-md-12">
<% unless @lesson.new_record? or @lesson.active_video_url.blank? %>
<h4> Currently Linked Video </h4>
<video src="<%= @lesson.active_video_url %>" style="width: 400px;"></video>
<% end %>
<hr/>
</div>
<h4>Add <%= @lesson.videos.blank? ? "a" : "another" %> Video</h4>
<% @lesson.videos = [Video.new(title: "")] if @lesson.videos.blank? %>
<%= f.simple_fields_for :videos do |g| %>
<%= g.input :title, label: "Video title" %>
<%= g.input :video, as: :file, lebel: "Select Video" %>
<% end %>
<center><%= f.submit class: "lesson-category btn-danger" %></center>
<% end %>
</div>
<script type="text/javascript">
$(".newLessonform").ajaxForm(function(data) {
$("#primaryModalContent").html(data.message);
});
</script>
在上面的腳本中,我給出了ajaxForm。下面給出了它的模式形式。
<div class="modal fade" id="primaryModal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" , data-dismiss="modal">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="row modal-body" id="primaryModalContent">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
在Chrome控制檯中的錯誤,是未被捕獲的錯誤:(...)$給ajaxForm不是一個函數。 我被困在這裏約一個星期。任何人都可以給我一個解決方案。
在此先感謝。
確保您正在加載在正確的JS庫文件,這樣做正確的順序,即後jQuery庫 –
是啊,我在正確的順序添加爵士。 –
@ThananjayaChakravarthy錯誤消息會建議你沒有... $ .ajaxForm由該插件提供:http://malsup.com/jquery/form/。它必須包含在jquery之後的頁面中,但在你想使用它之前。 – ADyson