我目前正在与Dojo合作,而且我对它很新。 我遇到了一个问题,如果userinput有效,我想检查组合框的内容。 如果输入无效,我想阻止在按下提交后发生POST操作。 无效输入将是{}<>;'等字符我只想允许带有正则表达式的文本和数字,输入必须大于0且小于20,因此该字段也可能不是空白。
用户必须能够输入他/她自己的自定义文本,而不仅仅是从已经可用的项目中选择,如果是这种情况我应该使用FilteringSelect。
提前致谢
答案 0 :(得分:0)
我想出了一个可能解决方案的小代码示例。
你应该设置" required" ComboBox的属性为true,包含一个" regExp"财产如下图所示:
<script language="Javascript" type="text/javascript">
require(["dojo/store/Memory",
"dijit/form/ComboBox",
"dijit/form/Button",
"dojo/_base/window",
"dojo/domReady!"],
function(Memory, ComboBox, Button, win, ready){
var stateStore = new Memory({
data: [
{name:"Alabama", id:"AL"},
{name:"Alaska", id:"AK"},
{name:"Arizona", id:"AZ"},
{name:"Arkansas", id:"AR"},
{name:"California", id:"CA"},
{name:"Colorado", id:"CO"},
{name:"Connecticut", id:"CT"},
{name:"Delaware", id:"DE"}
]
});
var box = new ComboBox({
name: "state",
value: "",
store: stateStore,
searchAttr: "name",
required: true,
regExp: "[a-zA-Z0-9]{1,19}"
});
win.body().appendChild(box.domNode);
var submit = new Button({
label: "Submit",
style: "margin: 0 0 0 10px;",
onClick: function() {
if ( box.isValid() ) {
// Do the post
var boxValue = box.get("value").trim();
} else {
// Invalid entry
}
}
});
win.body().appendChild(submit.domNode);
});
</script>
如果您需要在RegExp中允许空格,那么:
regExp: "[a-zA-Z0-9 ]{1,19}"
此外,还有相关的link;