【发布时间】:2014-05-18 19:13:08
【问题描述】:
在下面的 jquery 脚本中,我使用了 3 个函数,创建、更新和保存 厘米。当我创建一条新记录时,会调用 create 函数,如果我单击保存,则该记录 被保存。如果我刷新页面并想要更新记录,它可以工作。 (更新然后保存功能)
但是当我想在创建/保存之后更新而不刷新页面时, 调用函数 save 而不是 update/save。
我可能需要取消绑定事件,但这对我不起作用。 我的保存是通过单击触发的,在其中,提交事件链接到一个元素。
我在某处读到这不是一个好习惯,但我读到的解决方案是触发提交 来自点击功能的事件,我试过了,但它重新加载了我想避免的页面,因为我正在使用 阿贾克斯。
编辑
我放了一个跟踪,我可以看到当我想在创建/保存之后更新时,它调用了 save 方法但没有进入方法内部,也没有进入更新方法。调用的 url 包含保存但带有更新调用参数。
/blog/index.php/save...
我的理解是,在 MVC 模式中,控制器方法渲染视图。 由于创建/保存后呈现的最后一个视图是由保存操作控制器完成的,因此在此之后完成的提交调用了从中呈现视图的控制器。
任何见解将不胜感激。
$(document).ready(function() {
$("input.switch-input:radio").click(function(e) {
var comment = $(this).data('comment');
var val = $(this).data('val');
if (comment.length == 0){ // New record
$.ajax(
{
--> call url to create new record
});
}
else if(comment !== val){
if (confirm ("change comment?")){
$.ajax(
{
--> call url to update record
});
} else{
alert('no');
}
}
})
;
$('body').on('click','#saveComment',function(e) {
e.preventDefault();
var url = $(this).val();
$("#comment-form").submit(function(e) {
var postData = $(this).serialize();
$.ajax(
{
--> call url to save data
});
e.preventDefault(); //STOP default action
});
$("#comment-form").submit();
$("#comment-form").unbind('submit');
$("#saveComment").unbind('click');
});
});
【问题讨论】:
-
我做了,但它不起作用。 @Scimonster,我用新信息更新了我的帖子