javascript - 如何从第一个下拉列表的 onchange 填充 2 个文本框和 1 个下拉列表

标签 javascript html

我试图在文本框中显示星系的坐标,并根据第一个下拉列表的结果填充下拉列表。我可以使用链接的下拉菜单,但无法弄清楚如何填充相关文本框

我找到的答案只能回答一个问题,但不能同时回答两个问题,并且将我找到的答案组合起来也不起作用

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

<div class="form-group"><div class="row"><div class="col"><label for="target-list">Target Name:</label></div></div> <select id="choices" type="select" name="name" placeholder="Target Name" class="button form-control" aria-required="true" aria-invalid="false"></select>
<div class="alert alert-danger" style="display: none;"></div></div> <div class="form-group"><label>Right Ascension:</label> <input id="Right Ascension" type="text" placeholder="HH:MM:SS.S" name="ra" class="form-control" aria-required="true" aria-invalid="false"> <div class="alert alert-danger" style="display: none;"></div></div> <div class="form-group"><label>Declination:</label> <input type="text" placeholder="DD:MM:SS.S" name="dec" class="form-control" aria-required="true" aria-invalid="false"> <div class="alert alert-danger" style="display: none;"></div></div>

 <div><label class="wrapper" for="states">Filter</label>

$(document).ready(function() {
  //init data
  var arrayList = [{
      "Id": 0,
      "Name": "Select a target...",
      "Right Ascension": "HH:MM:SS.S",
      "Declination":"DD:MM:SS.S"
    },
    {
      "Id": 1,
      "Name": "M15",
        "Right Ascension": "21:29:58.3",
      "Declination":"+12:10:01.2"
    },
    {
      "Id": 2,
      "Name": "M27"

    },
    {
      "Id": 3,
      "Name": "NGC891"
    }

  ];


  for (var i = 0; i <= arrayList.length; i++) {
    $('#choices').append('<option value="' + arrayList[i].Id + '">' + arrayList[i].Name + '</option>');
  }


});

$("#choices").change(function() {
  // $.getJSON("jsondata/data.json", function(data) {
  //use this if using external json sets

  var $selection = $("#choices option:selected");
  var key = $selection.val();

  var vals = [];

  $(".imghere").attr("src", "");

  switch (key) {
    case '1':
      text: ["Please Select a Filter","Red (Rp)", "Green (V)", "Blue (B)"],
      vals = ["Please Select a Filter...","Red", "Green", "Blue"]; 
      break;
    case '2':
      vals = ["Please Select a Filter...","Red (Rp)", "Green (V)", "Blue (B)"] //data.Berkeley 73.split(",");
      break;
    case '3':
      vals = ["Please Select a Filter...","Red (Rp)", "Green (V)", "Blue (B)"] //data.Czernic 27.split(",");
      break;
    case '0':
      vals = ['Please Select a Filter...'];
  }


  var $secondChoice = $("#filter");
  $secondChoice.empty();
  $.each(vals, function(index, value) {
    $secondChoice.append("<option>" + value + "</option>");
  });

});


$("#filter").change(function() {
  var $filter = $("#filter option:selected").val();
  var baseurl = "https://github.com/brychanjames/RTI-Simulator/blob/master/";
  var $showimg = baseurl + $filter + ".jpg";
  //$(".imghere").attr("src",$showimg); use this, the next line is demo purposes
  $(".imghere").attr("src", $showimg); /*use variable in place of the placeholder image*/


});

我希望能够显示目标的赤经和赤纬,并使用下拉列表填充显示的值,我创建了一个 fiddle ,显示与此处惰性文本框一起使用的选择框

[http://jsfiddle.net/brychang/jtf8k5ym/33/]

最佳答案

我能够做到这一点,但没有从数组中打印名称,这意味着您必须通过更改 jquery 代码中的“test”和“test2”来自行填充值。

更改:

<input id="Right Ascension" type="text" placeholder="HH:MM:SS.S" name="ra" class="form-control" aria-required="true" aria-invalid="false">
<input type="text" placeholder="DD:MM:SS.S" name="dec" class="form-control" aria-required="true" aria-invalid="false">

<input id="right" type="text" placeholder="HH:MM:SS.S" name="ra" class="form-control" aria-required="true" aria-invalid="false">
<input id="desc" type="text" placeholder="DD:MM:SS.S" name="dec" class="form-control" aria-required="true" aria-invalid="false">

JQUERY: 将值“test”和“test2”编辑为任意值

  switch (key) {
    case '1':
      text: ["Please Select a Filter","Red (Rp)", "Green (V)", "Blue (B)"],
      vals = ["Please Select a Filter...","Red", "Green", "Blue"]; 
      $('#right').val('test');
      $('#desc').val('test2');
      break;
    case '2':
      vals = ["Please Select a Filter...","Red (Rp)", "Green (V)", "Blue (B)"] //data.Berkeley 73.split(",");
      $('#right').val('test');
      $('#desc').val('test2');
      break;
    case '3':
      vals = ["Please Select a Filter...","Red (Rp)", "Green (V)", "Blue (B)"] //data.Czernic 27.split(",");
      $('#right').val('test');
      $('#desc').val('test2');
      break;
    case '0':
      vals = ['Please Select a Filter...'];
  }

关于javascript - 如何从第一个下拉列表的 onchange 填充 2 个文本框和 1 个下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55404086/

相关文章:

javascript - 在 ngFor 循环中添加类

javascript - 防止 react 简单 map 中的蓝色路径矩形

html - Internet Explorer 中选择标签选项中的 CSS 伪元素

javascript - 如何在 Knockout 中的选择选项中使用复选框

html - CSS 溢出属性仅在 Firefox 中具有不同的行为

javascript - 调用Javascript函数并同时执行PHP?

javascript - 如何防止搜索显示整个 JSON 数据库?

javascript - 解密 - 加密 crypto-js

javascript - 添加和删​​除按钮

javascript - laravel 模态提交表单出现错误 "TokenMismatchException in VerifyCsrfToken.php line 68:"