extjs文本字段和特殊字符(&;&x2B;)

extjs文本字段和特殊字符(&;&x2B;),extjs,special-characters,textfield,Extjs,Special Characters,Textfield,我有一个名为New Project的窗口,其中有两个字段集:设置项目属性(其中包含文本字段,用户可以在其中输入项目名称、项目代码等详细信息)和设置权限(用户可以在其中选中/取消选中复选框以指示给定项目成员的权限级别)。项目名称和项目代码是接受空格和特殊字符的文本字段。当用户在填写所有项目属性并选择适当的项目权限后单击createproject按钮时,将生成一个字符串,然后用于Ajax请求并创建项目 但是,如果用户输入包含&(符号)字符的项目名称,则会保存项目,但不会保存符号和字符及其后面的所有字

我有一个名为New Project的窗口,其中有两个字段集:设置项目属性(其中包含文本字段,用户可以在其中输入项目名称、项目代码等详细信息)和设置权限(用户可以在其中选中/取消选中复选框以指示给定项目成员的权限级别)。项目名称和项目代码是接受空格和特殊字符的文本字段。当用户在填写所有项目属性并选择适当的项目权限后单击createproject按钮时,将生成一个字符串,然后用于Ajax请求并创建项目

但是,如果用户输入包含&(符号)字符的项目名称,则会保存项目,但不会保存符号和字符及其后面的所有字符。例如,如果我将项目名称输入为“Testing1&56”,则在按下“创建项目”按钮后,将创建项目,项目名称将变为“Testing1”(&56未保存/显示)。在“项目名称”字段中键入加号(+)时,也会发生类似的情况。按下“创建项目”按钮后,将创建项目,但加号将消失,而是有一个空格。例如,如果我输入“测试+开发”作为项目名称,单击“创建项目”按钮后,将创建项目,项目名称将变为“测试开发”。我已经通知了参数和url,以查看生成了什么类型的字符串

我发现在这个字符串中,会显示字符&和+。但是,一旦执行了Ajax请求并创建了项目,符号和它后面的所有字符以及加号就不会保存在项目名称中

任何关于如何解决这个问题的建议都将不胜感激


另外,项目名称字段中不接受磅(#)符号-单击“创建项目”按钮时,我收到错误消息“创建项目失败”。但是,我希望用户可以在项目名称字段中输入一个#符号,并且当用户单击创建项目按钮时,可以创建这样一个项目。

使用
Post
请求,或者在
Get
请求的情况下使用
encodeURI()
进行url编码。

var result = Ext.String.format("?project.ProjectName={0}&project.ProjectCode={1}&project.BaseFormatID={2}&region={3}&project.Company={4}&project.Location={5}&project.StartDate={6}&project.DeadlineDate={7}", encodeURIComponent(projectname), encodeURIComponent(projectcode), projectformat, region, encodeURIComponent(company), encodeURIComponent(location), startdate, deadlinedate);

请在你的文本中使用段落,这堵文本墙几乎无法阅读,让人害怕。要使段落命中,请输入两次或在行尾添加两个空格。我不能使用Post或Ext.urlEncode(现在已弃用)。根据我的主管,我应该能够通过简单地转义&、+和#的projectname和projectcode字符串来解决这个问题。我一直在研究Ext.String.escape()、String.search()和String.replace(),但没有找到解决方案。我无法修改Ajax(它需要保持原样)。再说一次,关于如何进行的任何提示都会很有帮助。我还尝试使用encodeURIComponent(url),因为我读到这会转义&、+和#,但它给了我一个错误(“您正在尝试解码无效的JSON字符串”)。