Javascript Extjs-组合框提交值
Javascript Extjs-组合框提交值,javascript,extjs,combobox,submit,Javascript,Extjs,Combobox,Submit,在我提问之前,我想提一下,我阅读了关于这个问题的每一篇文章。 我在一个独立的ajax请求中使用:form.getForm().getValues()提交我的extjs表单 我无法将组合中的值(userManager\u userId)提交到服务器: new Ext.form.ComboBox({ name: 'userManager_userName', valueField: 'userManager_userId',
在我提问之前,我想提一下,我阅读了关于这个问题的每一篇文章。
我在一个独立的ajax请求中使用:
form.getForm().getValues()
提交我的extjs表单
我无法将组合中的值(userManager\u userId)提交到服务器:
new Ext.form.ComboBox({
name: 'userManager_userName',
valueField: 'userManager_userId',
hiddenValue : 'userManager_userId',//I want to send this ti the server (Integer)
displayField: 'userManager_userName'
....
)}
提供/提交其显示而非其值的组合。我应该提到,当for加载时,我使用
Ext.data.JsonReader
谢谢 更新 所以我做了一个小测试让你看直播:
您可以查看源代码以查看js源代码。
完成后我会把它贴在这里。
现在它正在工作,但是表单没有初始化它的值。使用hiddenName代替名称或在名称之外使用。这将创建该名称的隐藏字段,该字段将存储当前选择的值字段的值。还要注意,hiddenValue配置用于设置隐藏字段的初始值,而不是字段名声明 这是一个经过修改的组合框定义,它将通过请求参数userId提交所选记录的userManager\u userId字段的值:
new Ext.form.ComboBox({
hiddenName: 'userId',
valueField: 'userManager_userId',
displayField: 'userManager_userName',
// ...
});
您是否为组合框设置了
hiddenName
属性?当您使用hiddenValue
时,您需要使用hiddenName
hiddenValue
只设置组合的默认值。通过设置它,您将无法将值发送到服务器端
更新:既然您使用单独的Ajax请求提交表单,为什么要使用隐藏字段来存储值?您可以从以下位置访问组合框的值:
comboObject.getValue()
form.getForm.getValues()不提供组合值的另一个可能原因是值字段中的值错误。在您的情况下,您有userManager\u userId。这是要绑定到组合框的基础数据值名称吗?以下是我的例子:
store: new Ext.data.JsonStore({
fields:['item','value'],
data: [
{item:'Option 1',value: 'OP1'},
{item:'Option 2',value: 'OP2'},
{item:'Option 3',value: 'OP3'}
]
}),
mode: 'local',
editable: false,
allowBlank: false,
forceSelection: true,
valueField: 'value',
displayField: 'item',
name:'tt',
id: 'tt'
这里valueField的值绑定到我的存储的值字段。如果我添加一个hiddenName:“userId”
它提交一个空字符串,hiddenName的值只是在提交或调用周围表单上的getValues时组合框的所选值将存储在其中的参数名。如果该参数中没有值,则可能还有其他问题需要解决。一个更完整的组合框定义示例——特别是您如何设置店铺的示例——将非常有用。如果我添加一个hiddenName:“userId”
它提交一个空字符串谢谢,访问我的obj.getValue()
将提供一个空字符串。与getForm().getValues()
相同。我使用hiddenValue,因为我认为这是应该发送到服务器的内容。。。我删除了hiddenValue,但仍然得到一个空字符串。。。。