0

我正在从输入创建 dijit 小部件:

<input name="serviceName" type="text"/>
input = new ValidationTextBox({required: true}, query('[name=serviceName]')[0])

我有很多输入,我想对它们进行批处理,给它们单独的功能。

问题是,我在文档中找不到如何从小部件中获取输入名称(也可以是 Select、DateBox 等,我也无法在 Firebug 中找到该属性检查元素

function processInput(input) {
   var inputName = ???
}

我试过了input.nameinput.get('name'),但他们返回未定义。

4

1 回答 1

1

以编程方式实例化您的小部件时,通常不会复制属性。只有当您使用声明性标记时,才会复制这些属性。这意味着该name属性不是从您的原始输入节点复制的,因此它实际上是空的。

创建时ValidationTextBox,只需提供name如下示例所示的属性:

var inputNode = query('[name=serviceName]')[0];
var input = new ValidationTextBox({
    required: true,
    name: inputNode.name
}, inputNode);

然后,您可以使用input.name或检索名称input.get('name')

我还做了一个例子JSFiddle

于 2013-10-11T10:13:35.130 回答