0

我已经开始在公式中使用 dojo。它工作正常,但我有选择框的问题。该选择框的存储是在就绪函数的函数中创建的。之后我做了一个 set('value', data); 与数据,我从 Ajax 调用到服务器。此选择框的值不会改变。如果我在控制台中测试了相同的代码,它也不起作用。我做了另一个选择框,同样的功能改变了另一个选择框的值。

这里的代码从选择框创建代码:

var shop_id = dijit.byId('shopSelect').get('value'); 
var person_count = document.getElementById("person_count").value;
var produkt_count = document.getElementById("person"+person_count+"_produkt_count").value;
xhr.get({
        url: "./ajax_getAlterskategorie.php?shop_id="+shop_id,
        handleAs: "json"
}).then(function(data){
 var tmp = new Memory({ data: data.selectbox });
 var os = new ObjectStore({ objectStore: tmp });
 var s = new Select({
   store: os,
   name: "person"+person_count+"_alter",
   style: {width: "200px"} ,
   onChange: function ( alterskategorie)
   {
      if( dijit.byId('shopSelect'))
      {
        var shop_id = dijit.byId('shopSelect').get('value');
      }
      else
      {
        var shop_id = 0;
      }
      xhr.get({
       url: "./ajax_getProdukt.php?alterskat="+alterskategorie+"&getpkat=1&shop_id="+shop_id,
       handleAs: "json"
      }).then(function(data){
        var produkt_count = document.getElementById("person"+person_count+"_produkt_count").value;
        var tmp = new Memory({ data: data });
        var os = new ObjectStore({ objectStore: tmp });

        for( var i = 1; i <= produkt_count; i++)
        {
          dijit.byId( 'person'+person_count+'_pkat'+i).setStore(os);
        }
      });
    }
  }, "person"+person_count+"_alter");
  s.startup();
});

这是更改值的代码:

xhr.get({
  url: "./ajax_getOrder.php?order_id="+document.getElementById("id").value,
  handleAs: "json"
}).then(function(data){
  for( i = 1; i <= data.person_count; i++)
  {
    dijit.byId('person'+i+'_alter').set('value', '"+data["person"][i]["alter"]+"');
  }
});
4

1 回答 1

0
dijit.byId('person'+i+'_alter').set('value', '"+data["person"][i]["alter"]+"');

为什么使用 '"+ 和 +"',而不仅仅是:

dijit.byId('person'+i+'_alter').set('value', data["person"][i]["alter"]);

确保您尝试使用 data["person"][i]["alter"] 设置的数据(键)在选择小部件中已经可用。

注意:请注意您是否使用整数(如 1,2,3.. :) )作为选择选项的键,前段时间有点错误。

于 2012-10-22T20:14:37.883 回答