使用 jquery 从文本文件创建的 select 下拉列表中捕获 selected 项目值
capture selected item value from a select drop down list created from a text file using jquery
我有一个文本文件,其中包含一些简单的词,例如:make、this、work。
我希望能够加载文本文件并从中创建动态 select 下拉列表。当用户点击提交时,它会打印出 selected 项的值。
下面是代码,我使用 handle bar 将页面呈现给用户。当用户单击提交按钮时,它会转到 index/display 以查看他们 select 编辑的内容。
不是打印出 selected 选项的实际值,而是打印出 selected 选项的索引,而不是值。
<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>
这是 post 函数:
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>
我有一个文本文件,其中包含一些简单的词,例如:make、this、work。
我希望能够加载文本文件并从中创建动态 select 下拉列表。当用户点击提交时,它会打印出 selected 项的值。
下面是代码,我使用 handle bar 将页面呈现给用户。当用户单击提交按钮时,它会转到 index/display 以查看他们 select 编辑的内容。
不是打印出 selected 选项的实际值,而是打印出 selected 选项的索引,而不是值。
<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>
这是 post 函数:
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>