【问题标题】:How can I pass select value to another function and get data from Json according to passed value?如何将选择值传递给另一个函数并根据传递的值从 Json 获取数据?
【发布时间】:2013-03-21 11:00:06
【问题描述】:

我正在编写 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() 函数 函数调用分布(类型) {

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

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

【问题讨论】:

  • 您想在选择项目时显示参数,还是在发送时显示?
  • @HodayaShalom 我想在选择分发后立即显示参数。发送与某些不同的内容有关。用于将数据发送到服务器。参数必须显示在选择下方和上方发送按钮。
  • 你能解释一下你在函数callDist中做了什么吗?
  • @HodayaShalom 可能是假代码。但实际上我想获取选定的分布参数,有分配给分布的类型,我认为它们可以使用。并且参数必须作为键传递和值。例如,最小值作为键和值是2。但我必须先检查哪个分布。被选中。
  • 您是否在 OnChange 中签入调试器(如果此函数运行)? (如果你能集中你的问题,那就更好了)你的问题是什么?如何从json中获取参数?如何将它们动态地放入 html 中?如何运行 Onchange?

标签: javascript jquery html json option


【解决方案1】:

试试这个代码...

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

                }

             }


         }



    });
    }

【讨论】:

  • 这仅适用于均匀分布。整体分布参数是否有任何通用函数?
  • 好的,从选择中单击时如何显示这些值?知道吗?
  • 使用 jquery 动态创建标签,例如 $("#id").append("");此行添加 val1 是由 id 指定的选定元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 2016-11-24
  • 1970-01-01
相关资源
最近更新 更多