如何将 ID 分配给动态下拉列表选择

How to assign an ID to a dynamic dropdown select?

本文关键字:动态 下拉列表 选择 分配 ID      更新时间:2023-09-26

每当使用第一个选择下拉列表时,我想分配一个会话ID(这将被隐藏)。会话 ID 是"天"之后的数字 300、301 等。

当用户从"首选"下拉列表中选择某些内容时,它应该将"300"值分配给"sessionid"下拉列表,同时更改"day"下拉列表的值(顺便说一句,这已经有效了)

如何正确实施它?

请参阅下面的代码:

<select id="preferred" class="preferred" name="preferred">
  <option value="">- Select -</option>
  <option value="Mountain Dew">Mountain Dew</option>
  <option value="Seven Up">Seven Up</option>
</select>
<select id="day" class="day" name="day">
  <option value=""></option>
</select>
<select id="sessionid" class="sessionid" name="sessionid">
  <option value=""></option>
</select>
$(function() {
  var selectValues = {
   "Mountain Dew": {
   "Monday": "300"
  },
   "Seven Up": {
   "Tuesday": "301"
  }
};
var $preferred = $('select.preferred');
var $day = $('select.day');
var $sessionid = $('select.sessionid');
$preferred.change(function() {
  $day.empty().append(function() {
   var output = '';
   $.each(selectValues[$preferred.val()], function(key, value) {
   output += '<option value="' + key + '">' + key + '</option>';
  });
  return output;
  });
 }).change();
});

例 : http://jsfiddle.net/creativemix/5ZWrE/2/

如果要

设置会话 ID 下拉列表的值,请尝试此操作。在小提琴中设置输出变量后包括它。

$sessionid.empty()
     .append($("<option></option>")
     .attr("value",value)
     .text(value));

这是小提琴的链接。

但是,正如其他人已经建议的那样,为什么不使用隐藏的文本字段来存储值呢?

要将值存储在隐藏字段中,

<input type="hidden" id="hdnSessionId" />

并将其添加到脚本中。

$('#hdnSessionId').val(value);

您可以使用Element.id = 'id'在javascript中设置id。

https://developer.mozilla.org/en-US/docs/Web/API/Element.id

在您的代码中,在您想要分配 id 的位置可能是这样的:

$sessionid[0].id = $day.val();

但请注意,ID必须以字母开头,即使确实有效,数字通常也是不好的做法。

将所需的值放在隐藏字段中可能比此解决方案更可取。