gpt4 book ai didi

javascript - ExtJS 4 Form.submit() 没有成功 :true in answer

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:27 25 4
gpt4 key购买 nike

我有一个 form ,这样提交的:

form.submit({
url: '/postme',
waitMsg: 'Loading...',
method: 'POST',
success: function (form, action) {
console.log(action.response.responseText);
}
});

但是!回答的主要问题是我没有属性 success: true 并且无法添加它。有没有办法在 Ext.Ajax.request 中制作类似 callback 的参数?而不是成功?或者也许有一种方法可以告诉 form.submit() 它必须在其他响应参数中检测成功?

顺便说一句:a 不能使用 Ext.Ajax.request,因为我必须从表单(文件上传)传递多部分数据。

提前致谢。

最佳答案

API说明您必须传递 success: true 才能调用成功处理程序。这是 submit 方法的文档

@param {Object} options The options to pass to the action (see Ext.form.Basic.submit and Ext.form.Basic.doAction for details)

if (form.isValid()) {
// Submit the Ajax request and handle the response
form.submit({
success: function(form, action) {
Ext.Msg.alert('Success', action.result.message);
},

// If you don't pass success:true, it will always go here
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response');
}
});
}

如果您想使用不同的属性来指示错误,您应该查看 http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.form.Basic-cfg-errorReader ,您可以配置 errorReader 以根据需要读取您的属性。

您还可以将成功和失败处理程序路由到同一个地方,并从处理程序中确定它

一定要设置 standardSubmit:true 这样它就不会通过 AJAX 提交

让您的代码感觉不那么脏的示例解决方案

Ext.define('ns.my.CustomReader', {
extend: 'Ext.data.reader.Reader',
alias: 'reader.ns-customreader',
read: function(xhr)
var resp = Ext.JSON.decode(response.responseText, true);
// Handle the case where response is not JSON too (unhandled server errror?)
return {success: resp ? !!resp.id : false};
}
});

然后,当您创建表单时,您可以使用

 form : {
errorReader: 'ns-customreader'
}

我还注意到你没有返回记录,读者应该根据文档返回记录,可能你只是不需要它,但是满足接口(interface)以保持你的符合Ext-JS的代码

The errorReader does not have to be a full-blown implementation of a Reader. It simply needs to implement a read(xhr) function which returns an Array of Records in an object with the following structure:

{ records: recordArray } // I think it needs success: boolean also.

关于javascript - ExtJS 4 Form.submit() 没有成功 :true in answer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com