我的目标是通过ajax(该部分已完成)以Colorbox模式提交表单,然后获取其中一个提交的值(称为' percentage')并更新值在一张桌子里。
我的代码如下(无形式)。您可以看到使用包含我的表单的Div(#Form_PlayerSave)打开了一个链接,并且该表单通过令人敬畏的jQuery Form Plugin进行了调整。表单正确提交,现在我只想更新'百分比'表的一部分。
脚本中包含php,因为每页需要25个表单(表格的每一行一个),所以每个$ x只计算不同的表单。
那么,我该怎么办?我在下面的内容返回undefined,并且我尝试了很多不同的解决方案。
我还注意到,当再次单击表格中打开Colorbox模式的链接时,它会显示表单通常会提交的页面,如果它没有全部变为ajaxy。关于如何解决此问题的任何想法都可以将价值更新为他们内心深处的内容?
$(document).ready(function(){
function prepform(){
$('#Form_PlayerSave<?= $x ?>').ajaxForm({
// target identifies the element(s) to update with the server response
target: '#customPlanDiv<?= $x; ?>',
// success identifies the function to invoke when the server response
// has been received; here we apply a fade-in effect to the new content
success: function() {
$.fn.colorbox({html:"Custom Plan Saved", open:true});
var x = $('#Form_PlayerSave<?= $x ?> :percentage').fieldValue();
$('#custom_plan_text<?= $x ?>').val(x[0]);
}
});
}
$(".customPlan<?= $x; ?>").colorbox({inline:true, href:"#customPlanDiv<?= $x; ?>"}, prepform);
});
我非常感谢大家的帮助!谢谢* 10!
答案 0 :(得分:0)
我明白了!
$(document).ready(function(){
function prepform(){
$('#Form_PlayerSave<?= $x ?>').ajaxForm({
// target identifies the element(s) to update with the server response
beforeSubmit: CPshowRequest<?= $x ?>,
// success identifies the function to invoke when the server response
// has been received; here we apply a fade-in effect to the new content
success: CPshowResponse<?= $x ?>,
resetForm: true
});
}
$(".customPlan<?= $x; ?>").colorbox({inline:true, href:"#customPlanDiv<?= $x; ?>"}, prepform);
});
// pre-submit callback
function CPshowRequest<?= $x ?>(formData, jqForm) {
var x = $('#percentage<?= $x ?>').fieldValue();
$('#custom_plan_text<?= $x ?>').html(x[0]);
return true;
}
function CPshowResponse<?= $x ?>(responseText, statusText, xhr, $form) {
$.fn.colorbox({html:"Custom Plan Saved", open:true});
}
为什么这个比我更好,但确实如此。 :)
此外,对于未来的旁观者,要确保div不会在提交时被替换,只需确保目标不指向原始形式的div(我的哑巴哑巴)。