5

dojo1.5でフォームを設定しています。dijit.form.ComboBoxとdijit.form.TextBoxを使用しています

コンボボックスには「car」、「bike」、「motorcycle」などの値があり、テキストボックスはコンボボックスの形容詞として使用されます。したがって、Comboboxに何が入っているかは問題ではありませんが、ComboBoxに値がある場合は、TextBoxに何かを入力する必要があります。オプションで、ComboBoxに何も入っていない場合は、TextBoxに何も入れられないので、問題ありません。実際、コンボボックスに何かが入っていない場合は、テキストボックスに何も入っていてはなりません。

通常のコーディングでは、テキストボックスでonBlurイベントを使用して、ComboBoxに値があるかどうかを確認する関数に移動します。これが機能しないことが道場でわかります...コード例は以下のとおりです...

Vehicle:
    <input dojoType="dijit.form.ComboBox"
      store="xvarStore"
      value=""
      searchAttr="name"
      name="vehicle_1"
      id="vehicle_1"
    />
 Descriptor:
<input type="text"
                dojoType="dijit.form.TextBox"
                value=""
                class=lighttext
                style="width:350px;height:19px"
                id="filter_value_1"
                name="filter_value_1"
                />

私の最初の試みは、記述子の<input>タグ内にonBlurを追加することでしたが、それが機能しないことを発見しました。

Dojoはこれをどのように処理しますか?dojo.connectパラメーターを介していますか?上記の例では、コンボボックスのIDは「vehicle_1」で、テキストボックスのIDは「filter_value_1」ですが、多数のコンボボックスとテキストボックスに順番に上に番号を付けることができます。(Vehicle_2、Vehicle_3など)

アドバイスやリソースへのリンクをいただければ幸いです。

4

2 に答える 2

7

onBlur イベントを追加するには、dojo.connect() を使用する必要があります。

dojo.connect(dojo.byId("vehicle_1"), "onBlur", function() { /* do something */ });

これを接続する必要がある入力が複数ある場合は、ぼかしが必要な入力用のカスタム クラスを追加し、dojo.query を使用してそれらすべてに接続することを検討してください。

Vehicle:
    <input dojoType="dijit.form.ComboBox"
      store="xvarStore"
      class="blurEvent" 
      value=""
      searchAttr="name"
      name="vehicle_1"
      id="vehicle_1"
    />

dojo.query(".blurEvent").forEach(function(node, index, arr) {
      dojo.connect(node, "onBlur", function() { /* do something */ });
  });

dojo.connect に渡される関数にコードを追加して末尾の数値を取り除き、それを使用して各 filter_value_* 入力を検証用に参照することができます。

dojo.connect()

コンボボックスのドキュメント

于 2011-01-11T23:33:18.047 に答える
4

onBlurHTMLで宣言されたウィジェットでも、私にとってはうまくいくようです。非常に初歩的な例を次に示します。

http://jsfiddle.net/kfranqueiro/BWT4U/

(console.log メッセージを表示するには、firebug/webkit inspector/IE8 開発ツールを開いてください。)

ただし、これに対するより理想的な解決策として、他のウィジェットにも興味があるかもしれません...

うまくいけば、これで始めることができます。

于 2011-01-12T00:49:56.497 に答える