如何将选择值传递给另一个函数并根据传递的值从Json获取数据?

问题描述:

我正在写html和javascript代码来从Json文件中获取一些数据。 我的HTML代码:如何将选择值传递给另一个函数并根据传递的值从Json获取数据?

<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()函数 功能callDist(类型) {

$.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}], 
    } 
] 
} 

如何显示参数只是用户选择后其中一个发行版,并在动态创建的标签和文本框中显示参数。 谢谢。

+0

要显示在项目的选择的参数,或者当您发送? – 2013-03-21 11:14:27

+0

@HodayaShalom我想在选择分配后立即显示参数。发送与某些不同有关。它用于将数据发送到服务器。参数必须显示在选择下方并位于发送按钮上方。 – ntf 2013-03-21 11:17:27

+0

你能解释一下你在函数'callDist'中试图做什么吗? – 2013-03-21 11:23:08

试试这个代码...

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]; 
        } 

       } 

      } 


     } 



    }); 
    } 
+1

这是仅用于均匀分布。是否有整个分布参数的一般函数? – ntf 2013-03-21 11:51:23

+0

tyr现在...它会为所有人工作。 – Dineshkumar 2013-03-21 12:24:16

+0

好的,如何从选择中点击时显示这些值?任何想法? – ntf 2013-03-21 12:49:03