Я искал в Интернете и на этом веб-сайте одинаковое простое и адаптируемое решение, но, увы, не радость.
Желаемый процесс:
- Пользователь выбирает
<option>
из списка <select>
. например, имя. - Значение текстового поля только для чтения автоматически заполняется на основе выбранного
<option>
. например, номер телефона, соответствующий имени. - Наконец, и поле
<select>
, и текстовое поле должны иметь свои собственные значения. то есть имя и номер телефона соответственно.
Основная разметка:
Когда это изменится, обновите значение моего текстового поля:
<select id="name" name="name">
<option value="Elvis">Elvis</option>
<option value="Frank">Frank</option>
<option value="Jim">Jim</option>
</select>
Значение зависит от значения вышеуказанного поля:
<input type="text" id="phonenumber" name="phonenumber" value="">
Мой вопрос:
Как мне добиться этого, используя jQuery или обычное Javascript ?Пожалуйста, ответьте на это с точки зрения начинающего клиента.
Решение (благодаря коррозии):
Я добавил следующее в заголовок моего документа:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#name").live("change", function() {
$("#phonenumber").val($(this).find("option:selected").attr("data-phonenumber"));
})
});
</script>
... и следующее к основному тексту моего документа:
<select id="name" name="name">
<option value="" selected="selected">Please select...</option>
<option value="Elvis" data-phonenumber="11111">Elvis</option>
<option value="Frank" data-phonenumber="22222">Frank</option>
<option value="Jim" data-phonenumber="33333">Jim</option>
</select>
<input type="text" id="phonenumber" name="phonenumber" value="" readonly="readonly">
Для получения дополнительной информации об использовании data-somename в качестве атрибута, как это предложено при коррозии, см. Следующие ссылки:
http://ejohn.org/blog/html-5-data-attributes/
http://blogs.sitepoint.com/rel-not-a-custom-attribute/