1

我正在编写 html 和 javascript 代码以从 Json 文件中获取一些数据。我的html代码:

 <div class="section">
    <div class="sectionTitle">
      <h3>Configuration</h3>
    </div>
     <select name="selectDistribution" class="span12" onchange="callDist("value");"  

 onfocus="this.selectedIndex = -1;">
      <option >Choose from distributions.</option>
      <option value="1">Uniform</option>
      <option value="2">Normal</option>
      <option value="3">Exponential</option>
      <option value="4">Geometric</option>
</select>
    <div id="parameters"></div>
    <div id="distributionParams"> </div>
    <button class="btn btn-large btn-block btn-primary" type="button">Send</button>
  </div>

当用户选择一种分布时,参数必须显示在选择下方。例如,当用户选择均匀分布最小值和最大值必须附加在下面并且我想在文本框中显示第一个最小值标签及其值时,对于最大值,过程是相同的。

我的 callDist() 函数 function callDist(type) {

$.getJSON('Dist.json', function(type){
    var $container = $('#parameters').empty();

    $.each(type.distributions, function(i, distributions) {
      if(type==1){

          $.each(distributions.type, function(key, value) {
          $container.append(key + ': ' + value + '<br />');
      }
      //And so on...

    });

    $container.append('<hr />');
  }
  );

 });


 }

我的 Dist.Json 文件如下:

 {
 "distributions":[
  {

     "name":"Uniform",
     "type":"1",
     "parameters":[{ "minValue":"2" , "maxValue":"4" }], 
  },
  {  "name":"Normal",
     "type":"2",
     "parameters":[{ "mean":"5" , "standartDeviation":"3" }],
  },
  {
     "name":"Exponential",
     "type":"3",
     "parameters":[{"lamda":"2"}],
  },
  {
     "name":"Geometric",
     "type":"4",
     "parameters":[{"probability":0.2}],
  }
]
}

如何在用户选择其中一种分布后立即显示参数并在动态创建的标签和文本框中显示参数。谢谢。

4

1 回答 1

0

试试这个代码...

function callDist(value)
    {
    $.getJSON('Dist.json', function(type){
        for(i in type.distributions)
         {
            if(type.distributions[i].name==value)
             {
               for( j in type.distributions[i].parameters)
                {  
                   for( k in type.distributions[i].parameters[j])
                   {
                   var val1=distributions[i].parameters[j][k];
                   var val2=distributions[i].parameters[j][k];
                    }

                }

             }


         }



    });
    }
于 2013-03-21T11:35:37.703 回答