Ссылка на значение в выпадающем списке в javascript

#javascript #forms #validation #select

#javascript #формы #проверка #выберите

Вопрос:

Я создаю проверку для своих форм. Я покрыл поля ввода текста следующим кодом:

 function validateForm_id()
{
var ctrl = document.forms["form1"]["id"];
var x=ctrl.value;
if (x==null || x=="") {
document.getElementById('id').style.backgroundColor="#FFD4D4";
document.getElementById("id").style.borderColor="#FF7A7A";
document.all.id.innerText = "password required";
  

Я хотел бы проверить значение из выпадающих списков выбора. Значения:

— Выберите заголовок —
Mr
. Mrs
. Ms

Я бы хотел, чтобы пользователь не мог отправлять, если — Title — это значение из поля.

как мне ссылаться на первое значение выпадающего списка в if (x==null || x=="") приведенном выше коде? Вот мой выпадающий список:

 <select name="title" onKeydown="Javascript: if (event.keyCode==13) post();" onFocus="validation_title()" onBlur="return validateForm_title()" id="title">
    <option>- Title -</option>
    <option value="1">Mr</option>
    <option value="2">Mrs</option>
    <option value="3">Ms</option>
    <option value="4">Other</option>
</select> <div align="center" id="title" style="font-size:small; color:#FF0000;"><script type="text/javascript">document.all.title.innerText = " ";</script></div>
  

Комментарии:

1. document.all ?! Мы больше не в 1990-х годах — в настоящее время поддерживаются все браузеры document.getElementById ; кроме того, вы можете захотеть взглянуть на jQuery — это намного удобнее.

2. да, извините, я действительно отстой в javascript, ха-ха, но это работает, спасибо за предупреждение

3. Тогда вам действительно стоит взглянуть на jQuery. Это не только имеет то преимущество, что избавляет вас от некоторых проблем, но и снижает риск нахождения действительно дрянных / старых примеров при поиске кода jQuery. Кстати, javascript: не относится к атрибутам onkeydown и т. Д. — Они всегда содержат javascript, единственная причина, по которой он не ломается, — это xyz: метка и в значительной степени не работает. И я почти уверен, что ваш обработчик будет работать только в IE, поскольку другие браузеры не используют глобальный объект события.

Ответ №1:

Вы можете использовать selectedIndex свойство <select> , чтобы проверить, что первый индекс никогда не выбирается.

 if (ctrl.selectedIndex == 0) { alert('The Title field is required'); }
  

Ответ №2:

 var select = document.getElementById('mySelectID');
alert(select.options[0].value); //first option's value
alert(select.value); // currently selected value
  

Чтобы получить текст параметра, используйте

 alert(select.options[select.selectedIndex].text);
  

Ответ №3:

 var opts = yourSelectObj.options;
  

затем выполните цикл по параметрам.