我正在使用JQuery Form插件通过Ajax发送表单。我拼凑了来自不同地方的代码,一切都很完美,除了一件事。
在success
时,来自PHP处理文件的数据被输出到<div>
(即“消息发送”响应)。当前在函数中设置了<div>
的ID。我想要做的是能够在函数之外设置该ID,以便更容易重复使用,但我不能在我的生活中找出如何将该ID传递给函数。这是因为:
我无法在success:
部分设置任何参数,我只能命名该功能。
我似乎无法以任何其他方式传递参数,即我无法在成功函数中添加额外的参数,即writeOutput(data,divID)
,在其他地方定义divID
。 / p>
以下是相关代码:
$(formOne).ajaxForm({
beforeSubmit: function() {
return $(formOne).validate({
// validation rules
}).form();
},
beforeSend: function() {
// beforeSend actions
},
success: writeOutput
});
function writeOutput(data) {
var $out = $('#output');
if (typeof data == 'object' && data.nodeType)
data = elementToString(data.documentElement, true);
else if (typeof data == 'object')
data = objToString(data);
$out.append('<div>'+ data +'</div>');
}
那么我怎样才能在writeOutput()
函数之外定义ID(目前是#output)?
答案 0 :(得分:0)
不确定这是否有效,而不是直接回答,
对于&#34;我不能在成功中设置任何参数:部分&#34;,你可以这样做:
$(formOne).ajaxForm({
beforeSubmit: function() {
return $(formOne).validate({
// validation rules
}).form();
},
beforeSend: function() {
// beforeSend actions
},
success: writeOutput,
context: { extra_arg: 'some_value' }
});
function writeOutput(data) {
var extra_var_val = this.extra_var; //the extra argument
var $out = $('#output');
if (typeof data == 'object' && data.nodeType)
data = elementToString(data.documentElement, true);
else if (typeof data == 'object')
data = objToString(data);
$out.append('<div>'+ data +'</div>');
}
无论进入&#39;背景&#39;成为回调函数的上下文。希望它有效。