1. ホーム
  2. javascript

[解決済み] Dojo get element type [重複]。

2022-01-25 14:49:58

質問

私は、dijit要素タイプを得るためにjavascriptを使いたいです。例えば、アイテムがtextbox、combobox、filteringselectなどである場合。以下は、私が試したもので、それはundefinedが返される結果となりました。

HTML

<s:textfield type="text" id="name" required="true" data-dojo-type="dijit/form/ValidationTextBox" />

<s:select id="gender" data-dojo-type="dijit/form/FilteringSelect" /> 

ジャバスクリプト

var genderType = dijit.byId('gender').attr('data-dojo-type');

var name= dijit.byId('name').attr('data-dojo-type');

console.log(genderType);
console.log(name);

結果

undefined
undefined

解決方法は?

を使用することです。 declaredClass プロパティがありますが、ほとんど文書化されていないため、これに依存することが良いことなのかどうか、私にはよくわかりません。

あなたの場合はそうでしょう。

require([ "dojo/ready", "dijit/registry" ], function(ready, registry) {
    ready(function() {
        console.log(registry.byId("gender").get("declaredClass")); // Returns dijit.form.FilteringSelect
    });
});

http://jsfiddle.net/6RRUK/

を使用することで data-dojo-type は機能しないので。

  1. ウィジェットプロパティではないので、これを実現しようとするならば、DOMプロパティ自体を要求する必要があります。
  2. data-dojo-type プロパティは通常、Dojo パーサーによってマークアップがパースされる際に消えます。