【问题标题】:TextArea Issue - Text within Angle Brackets Disappears while TypingTextArea 问题 - 键入时尖括号内的文本消失
【发布时间】:2018-06-14 17:44:59
【问题描述】:

当用户输入包含尖括号的文本时,在对话框上的TextArea 中输入右括号键后,文本和括号就会消失。

这是一个代码sn-p:

var some_textarea = new Ext.form.TextArea({
    id: 'some_textarea',
    name: 'name',
    hiddenName: 'name',
    fieldLabel: 'Field Label',
    width: 486,
    height: 150,
    autoScroll: true,
    labelSeparator: Common.required_asterisk,
    allowBlank: false,
    blankText: 'Data is required',
    emptyClass: 'required-textfield',
    emptyText: ' ',
    msgTarget: 'under'
});

非常感谢任何关于如何允许输入尖括号(以所见即所得方式)的想法。谢谢。

【问题讨论】:

  • 这个“ext”是什么东西,是图书馆的课吗?
  • 你在使用 ExtJS 对吗?这可能是一个旨在防止 XSS 攻击的“功能”。可能有一种方法可以禁用它,但 Ext 文档似乎并不公开。 编辑哦,我猜是:)
  • 听起来您需要在未向我们展示的代码中对输出进行 HTML 转义。
  • 是的,这是 ExtJS。

标签: javascript extjs textarea


【解决方案1】:

我使用的是非常旧的 ExtJs 版本(版本 3.2.1)。我收到的反馈似乎表明使用高于 4.2.1 的版本的人没有遇到此问题,因此我认为需要迁移到至少 4.2.1 作为解决此问题的唯一方法。

【讨论】:

    【解决方案2】:

    我强烈建议您升级到更高版本,但作为替代解决方案

    怎么样,按一下键,检查尖括号并用 [

    【讨论】:

      【解决方案3】:

      这里你可以重写TextArea的setValue函数和Ext.util.Format. htmlEncode这样的东西。

      setValue : function(v){
          if(this.emptyText && this.el && !Ext.isEmpty(v)){
              this.el.removeClass(this.emptyClass);
          }
      
          v = Ext.util.Format.htmlEncode(v);
      
          Ext.form.TextField.superclass.setValue.apply(this, arguments);
          this.applyEmptyText();
          this.autoSize();
          return this;
      },
      

      【讨论】:

      • 谢谢你。但是,我不确定我是否理解该代码的放置位置,因为它与我的原始代码 sn-p 相关。感谢任何澄清。
      • @TimothyClotworthy 我很惊讶,我也在 E​​xtjs 3.4 中工作,但我从来没有遇到过这种问题。您是否可以通过演示问题来创建 extjs fiddle。我试过但仍然无法重现它fiddle.sencha.com/#view/editor&fiddle/2i9o
      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 2021-08-06
      • 2016-11-27
      • 2021-09-17
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多