Dojo 使用约束时出现的NumberTextBox问题。模式:“";#%&引用;
我需要在Dojo 使用约束时出现的NumberTextBox问题。模式:“";#%&引用;,dojo,dijit.form,Dojo,Dijit.form,我需要在NumberTextBox的值旁边显示一个百分比符号(仅附加%symbol,不需要转换) 目前我正在使用约束:{pattern:“#%”},我注意到dojo向值中添加了两个零位,例如: value 100 displayed as 10000% 这在我的用例中并没有错,相反,我想将其显示为: value 100 displayed as 100% 下面是一个工作示例: 我非常确定我的用例是非典型的,但我想知道您是否知道这个问题的解决方案或解决方法 require(["dijit
NumberTextBox
的值旁边显示一个百分比符号(仅附加%symbol,不需要转换)
目前我正在使用约束:{pattern:“#%”}
,我注意到dojo向值中添加了两个零位,例如:
value 100 displayed as 10000%
这在我的用例中并没有错,相反,我想将其显示为:
value 100 displayed as 100%
下面是一个工作示例:
我非常确定我的用例是非典型的,但我想知道您是否知道这个问题的解决方案或解决方法
require(["dijit/form/NumberTextBox", "dojo/domReady!"], function(NumberTextBox){
new NumberTextBox({
name: "programmatic",
constraints: {pattern: "#%"},
value: 100
}, "programmatic").startup();
});
不透明度:
之所以会出现这种情况,是因为dojoNumberTextBox的模式中有一个特定的含义,即“%”
想知道更多详情,请
然而,我试图找出产生这种情况的确切原因,我注意到实际的文本框包含隐藏格式的100,dojo正在其上添加一个包含10000%格式值的容器
下图将更好地解释这一点
因此,如果我们需要在文本框中添加“%”,我们需要找到其他解决方法
希望这能对您有所帮助:)好吧,这是因为在dojoNumberTextBox的模式中有一个特定的含义,即使用“%” 想知道更多详情,请 然而,我试图找出产生这种情况的确切原因,我注意到实际的文本框包含隐藏格式的100,dojo正在其上添加一个包含10000%格式值的容器 下图将更好地解释这一点 因此,如果我们需要在文本框中添加“%”,我们需要找到其他解决方法
希望这能对你有所帮助:)实现这种行为有两种方法: 第一种方法 从文本框中添加%符号,使其如下所示 试试这个 第二种方法 正如我们看到的,numberTextBox的名称成为显示容器的id,因此我们可以根据id更新该值 试试这个 下面的代码片段将帮助您理解这一点:
require([“dijit/form/NumberTextBox”、“dojo/on”、“dojo/dom”,
“dojo/aspect”,“dojo/domReady!”],函数(NumberTextBox,on,dom,aspect){
变量numbertextBox=新的numbertextBox({
名称:“编程”,
约束:{模式:“#”},
数值:100
}“方案性”);
numbertextBox.startup();
byId(numbertextBox.name).value=numbertextBox.value+“%”;
打开(numbertextBox,“模糊”,函数(){
byId(numbertextBox.name).value=numbertextBox.value+“%”;
});
在(numbertextBox,“focus”,function(){
byId(numbertextBox.name).value=parseInt(dom.byId(numbertextBox.name).value.replace('%,'');
});
});代码>
不透明度:
实现这种行为有两种方法:
第一种方法
从文本框中添加%符号,使其如下所示
试试这个
第二种方法
正如我们看到的,numberTextBox的名称成为显示容器的id,因此我们可以根据id更新该值
试试这个
下面的代码片段将帮助您理解这一点:
require([“dijit/form/NumberTextBox”、“dojo/on”、“dojo/dom”,
“dojo/aspect”,“dojo/domReady!”],函数(NumberTextBox,on,dom,aspect){
变量numbertextBox=新的numbertextBox({
名称:“编程”,
约束:{模式:“#”},
数值:100
}“方案性”);
numbertextBox.startup();
byId(numbertextBox.name).value=numbertextBox.value+“%”;
打开(numbertextBox,“模糊”,函数(){
byId(numbertextBox.name).value=numbertextBox.value+“%”;
});
在(numbertextBox,“focus”,function(){
byId(numbertextBox.name).value=parseInt(dom.byId(numbertextBox.name).value.replace('%,'');
});
});代码>
不透明度:
感谢您的分享,我还注意到dojo的这一功能似乎非常低,例如,如果您查看NumberTextBox,您可以在第82行看到对它的引用。不知道如何解决这个问题。再次感谢。很高兴能帮助你。我试图找出一些解决办法来实现这一点。以下是其他输入…:)感谢分享,我还注意到dojo似乎在非常低的级别上具有此功能,例如,如果您查看NumberTextBox,您可以在第82行看到对的引用。不知道如何解决这个问题。再次感谢。很高兴能帮助你。我试图找出一些解决办法来实现这一点。以下是其他输入…:)感谢您的解决方案:)感谢您的解决方案:)
<label for="programmatic">Opacity:</label>
<input id="programmatic" type="text" />
https://jsfiddle.net/vikash2402/2w3wx5rm/4/
https://jsfiddle.net/vikash2402/2w3wx5rm/6/