Javascript 如何在这个jQuery脚本中编写条件语句?
我有一个jquery函数,它以rails表单为目标,并在提交事件时将表单数据发布到适当的操作。然后返回已创建的对象(审阅),并通过小胡子模板将其附加到选定元素并呈现:Javascript 如何在这个jQuery脚本中编写条件语句?,javascript,jquery,ruby-on-rails,mustache,Javascript,Jquery,Ruby On Rails,Mustache,我有一个jquery函数,它以rails表单为目标,并在提交事件时将表单数据发布到适当的操作。然后返回已创建的对象(审阅),并通过小胡子模板将其附加到选定元素并呈现: $(document).ready(function(){ $('.new_review').on('submit', function(event){ event.preventDefault(); var reviewList = $(this).siblings('ul’);
$(document).ready(function(){
$('.new_review').on('submit', function(event){
event.preventDefault();
var reviewList = $(this).siblings('ul’);
$.post($(this).attr('action'), $(this).serialize(), function(review){
var newReview = Mustache.render($('#review_template').html(), review);
reviewList.append(newReview);
});
});
});
我已在我的评论控制器中编写了if else语句,以限制用户(设计模型)只能创建一个评论:
def create
@restaurant = Restaurant.find(params[:restaurant_id])
@review = @restaurant.reviews.new(params[:review].permit(:thoughts, :rating))
if @restaurant.reviews.find_by user_id: current_user.id
flash[:notice] = "You already reviewed this restaurant!”
redirect_to '/restaurants’
else
@review.user = current_user
@review.save
redirect_to '/restaurants' unless request.xhr?
end
end
但是,我现在需要在jquery中插入一个条件,以确保只有在post操作之后实际返回了review对象时,jquery才会尝试追加一个新对象。我认为这需要写进post函数的第三个参数中,但对于如何进行,我有点不知所措
我想知道这是否是我想要实现的目标的正确途径,以及我如何才能写出这篇文章。提前感谢一位JS新手。下面的内容现在可以通过post函数中的一个简单if语句完美地工作:
$(document).ready(function(){
$('.new_review').on('submit', function(event){
event.preventDefault();
var reviewList = $(this).siblings('ul');
$.post($(this).attr('action'), $(this).serialize(), function(review){
var newReview = Mustache.render($('#review_template').html(), review);
if review
reviewList.append(newReview);
});
});
});
为什么要使用
“
?在第$(this)行中。兄弟姐妹('ul')
?是实际代码中的卷曲引号,还是它们在复制错误?在回调函数体周围添加类似于if(review!='')
的内容。不,它们实际上是在复制错误,而不是在我的实际代码中。然而,我已经非常简单地回答了我自己的问题,我可以发誓我在20分钟前写了完全相同的代码,但它不起作用,但一定是我的错。下面的代码现在可以完美地与post函数中的一个简单if语句配合使用:if review reviewList.append(newReview);};