Как назначить идентификатор для динамического выпадающего списка?

0

Я хочу назначить идентификатор сеанса (это будет скрыто) всякий раз, когда используется первый выбор выпадающего списка. Идентификатор сеанса - это номер 300, 301 и т.д. После "дня".

Когда пользователь выбирает что-либо из раскрывающегося списка "Предпочтительный", он должен присваивать значение "300" выпадающему меню "sessionid" и одновременно изменять значение раскрывающегося списка "день" (которое работает уже кстати)

Как это сделать правильно?

См. Код ниже:

<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/

  • 0
    Вы можете использовать Element.id = 'id' чтобы установить идентификатор в JavaScript. developer.mozilla.org/en-US/docs/Web/API/Element.id
  • 0
    Почему бы просто не использовать скрытое текстовое поле и установить id или value этого поля?
Теги:

2 ответа

0
Лучший ответ

Попробуйте это, если вы хотите установить значение раскрывающегося списка идентификаторов сеанса. Включите это после установки выходной переменной в вашей скрипке.

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

Вот ссылка на скрипку.

Но, как уже говорили другие, почему бы не использовать скрытое текстовое поле для хранения значения?

Чтобы сохранить значение в скрытом поле,

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

И добавьте это в скрипт.

$('#hdnSessionId').val(value);
  • 0
    Вау! Оно работает! Мне нравится ваше предложение хранить его в текстовом поле. Если бы мне пришлось использовать текстовое поле, какие изменения нужно внести в код? Спасибо!
  • 0
    Вы можете использовать ввод скрытого типа и установить значение. Я обновил свой ответ.
Показать ещё 1 комментарий
0

Вы можете использовать Element.id = 'id' для установки id в javascript.

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

В вашем коде, вероятно, будет что-то вроде этого в точке, где вы хотите назначить id:

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

Но, пожалуйста, обратите внимание, что идентификатор должен начинаться с буквы, а цифры - это, как правило, плохая практика, даже если она работает.

Вложение этого значения в скрытое поле, вероятно, предпочтительнее этого решения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню