Как я могу получить имя выбранной опции или идентификатор выбранного элемента, используя jQuery - PullRequest
0 голосов
/ 19 мая 2010

У меня есть «questionairre», который состоит из ряда полей выбора.

Мне нужно использовать два свойства в опциях. Для каждой выбранной опции мне нужно значение (которое я знаю, как получить и работает нормально), но мне также нужно хранить дополнительное значение, которое представляет идентификатор конкретной опции в БД.

Одним из решений было бы поместить два значения в свойство "value" и разобрать его ... но если есть какое-то другое свойство, которое я могу использовать, это может быть проще и понятнее. Могу ли я добавить собственное свойство ?? как databaseId, к которому можно получить доступ с помощью jQuery?

спасибо за любые предложения.

Ответы [ 2 ]

2 голосов
/ 19 мая 2010

Я бы не стал добавлять пользовательские атрибуты, так как это больше не будет действительным HTML.

Не можете ли вы использовать "нормальный" атрибут ID (т. Е. Тот, который есть у любого элемента HTML) этих option элементов?
Вы также можете добавить префикс ID, если это необходимо, и взять подстроку идентификатора, например,

<option id="db23123" value="value">Value</option>

Или, в зависимости от того, как структурирован ваш select, вы также можете использовать атрибут value для идентификатора базы данных и поместить другое «значение» в качестве текста внутри параметра (если он читабелен человеком):

<option value="23123">Human Readable Value</option>

Затем вы можете получить идентификатор БД через .val() и текстовое значение через .text().


Другое решение, которое работает, если вы, например, Создание элементов option динамически с помощью JavaScript - это использование функциональности .data(). Это позволяет вам присоединять произвольные пары ключ-значение к любому узлу DOM.

1 голос
/ 19 мая 2010

Вы можете использовать плагин метаданных .

Затем вы можете использовать так:

Markup:

<select>
  <option class="{db_id: 1}" name="X" value="y" selected="selected">
  [...]
</select>

Сценарий:

  var data = $('option:selected').metadata();
  alert(data.db_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...