繁体   English   中英

使用 jquery 从文本文件创建的 select 下拉列表中捕获选定的项目值

[英]capture selected item value from a select drop down list created from a text file using jquery

我有一个文本文件,其中包含一些简单的词,例如:make、this、work。

我希望能够加载文本文件并从中创建一个动态的 select 下拉列表。 当用户单击提交时,它会打印出所选项目的值。

下面是代码,我使用 handle bar 将页面呈现给用户。 当用户单击提交按钮时,它会转到索引/显示以查看他们选择的内容。

它不是打印出所选选项的实际值,而是打印出所选选项的索引,而不是值。

<form method="post" action="index/display" id = "first" name="first">
<fieldset>
   <div style="display: inline-block; margin-left:10px ">
      <legend>Selecting items from text file</legend>
      <script type="text/javascript" src="js/jquery.js"></script>
      <script>
         $.get("js/pytxt.txt",
           function(data) {
               /*alert( "Data Loaded: " );*/
               var options = data.split(','),
               $select = $('select#value');
               for (var i = 0; i < options.length; i++) {
                   $select.append('<option value="' + i + '">' + options[i] + '</option>"');
                   console.log ($select)};
         });
      </script>
      <p>
         <label></label>
         <select id = "value" name="first">
            <option selected value="base">Please Select</option>
         </select>
      </p>
   </div>
   <p>
      <input type="submit">
   </p>
</fieldset>

这是帖子 function:

app.post('/index/display', (req, res) => {
   res.status(200).send('POST works!' + req.body.first);
});

请更换:

$select.append('<option value="' + i + '">' + options[i] + '</option>"');

用这条线:

$select.append('<option value="' + options[i] + '">' + options[i] + '</option>"');

这应该可以解决您的问题。

您可以稍微简化一下:

options.forEach(v => $select.append( new Option(v, v)))

演示:

 let options = 'one,two,three,four'.split(','), $select = $('#value'); options.forEach(v => $select.append( new Option(v, v)))
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="value"></select>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM