Изменение текста в раскрывающемся списке - PullRequest
2 голосов
/ 10 августа 2011

Если у меня есть

<select name="id[3]" id="attrib-3">
  <option value="11">None</option>
  <option value="13">White ($4.72)</option>
  <option value="32">Black ($5.90)</option>
  <option value="12">Blue ($5.90)</option>
</select>

и я хочу изменить цены на основе другого раскрывающегося списка, каковы мои варианты?(предположим, я знаю, что в этом случае вариант 13 должен быть 5,72, вариант 32 должен быть 6,90, а вариант 12 должен быть, например, 6,90).У меня есть onchange при первом запуске раскрывающегося списка, и я знаю, как добраться до attrib-3, но я не уверен, как изменить текстовые поля для раскрывающегося списка.

Ответы [ 3 ]

5 голосов
/ 10 августа 2011

Вы можете перебрать опции:

for(var i = 0, l = select.options.length; i < l; i++) {
    var option = select.options[i];
    if(option.value == "...") {
        option.innerHTML = "...";
    }
}

Я бы поместил это в функцию и передал искомое значение и замену, или карту.Что-то вроде:

setOptionText(select, 'value', 'text');
// or
setOptionText(select, {'value': 'text', 'value': 'text', ...});

Ссылка : HTMLSelectElement

1 голос
/ 10 августа 2011

Решение Феликса делает свое дело, и это чистый JavaScript, но вам может оказаться проще использовать jQuery .Он имеет функции быстрого доступа для таких вещей, как это.Например:

$('option[value="13"]').text('some text');

Вот скрипка , демонстрирующая это.

Обратите внимание, что использование jQuery означает, что страницы должны будут загружать библиотеку.Это может повлиять на производительность.По моему опыту, обычно о производительности jQuery не стоит беспокоиться.Он также имеет то преимущество, что позволяет писать меньше JS для достижения той же цели, потенциально повышая производительность, если у вас много сценариев.

0 голосов
/ 22 августа 2012

Мой подход к поиску всех раскрывающихся списков с помощью записи "(Ohne)", которая является значением SharePoint по умолчанию для раскрывающегося списка lookupfields. Он найдет все выпадающие значения "(Ohne)" и переименует их в "Bitte wählen", что означает, пожалуйста, выберите на английском языке. Быстро и грязно поместить в Web / List / Listname / NewForm.aspx с помощью SharePoint Designer.

Может быть полезно для некоторых грязных решений:

<script language="javascript" type="text/javascript">
var dropDowns = document.getElementsByTagName('select');
for (var i = 0; i < dropDowns.length; i++) {
    try{
    if (dropDowns[i].options[0].text == '(Ohne)')
    {
        dropDowns[i].options[0].text = 'Bitte wählen';
    }
    }
    catch(err)
    {
        // catches array exceptions occurred by <select> tags without <options>
    }
}
</script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...