2013-09-18 2 views
1

JQuery Не уведомляет меня, когда их значение не выбрано из формы рейтинга. Будет ли это потому, что selected = "selected" на самом деле рассматривается как значение jquery?Проверка формы с помощью поля SELECT с использованием JQuery

<label for="rating">Rating</label> 
    <select id="rating" name="rating" /> 
     <option selected="selected" disabled="disabled">Select a Rating</option> 
     <option value="Terrible">Terrible</option> 
     <option value="Fair">Fair</option> 
     <option value="Ok">Ok</option> 
     <option value="Good">Good</option> 
     <option value="Excellent">Excellent</option> 
     </select> 


     $(document).ready(function(){ 

     // No value for movie_title 
     if ($('#movie_title').val() == "") { 
      alert ("No Film"); 
     } 

     // No Value for actor 
     if ($('#leading_name').val() == "") { 
      alert ("No actor"); 
     } 

     // No value for rating 
     if ($('#rating').val() == "") { 
      alert ("No Rating"); 
     } 

     //No value for review 
     if ($('#review').val() == "") { 
      alert ("No review"); 
     } 

    // Focus on first form field. 
     $("input:text:visible:first").focus(); 

    }) 
+0

О, я выбираю неправильный обзор/рейтинг. На самом деле это тоже неправильно ... был долгий день. – user1829823

+0

Добавьте значение = "" слишком – mplungjan

ответ

2

Это потому, что значением по умолчанию будет текст, если значение не указано.

Дайте значение 0 на ваш выбор по умолчанию и проверить на что:

<option selected="selected" value=0 disabled="disabled">Select a Rating</option> 
+0

, чтобы указать: есть некоторые плагины для jquery (например, jquery ui), для чего нужен атрибут value, требующий работы –

+0

Это как вы бы проверили значение if ($ ('# рейтинг '). val() == 0) { alert («Без рейтинга»); } – user1829823

+0

@ user1829823 - Yup – tymeJV

0

Вы можете использовать родную selectedIndex найти индекс первого выбора - https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement

if($('#rating').get(0).selectedIndex === 0){alert("first item")} 
+0

Да, это сработало блестяще. Что такое .selectedIndex? – user1829823

+0

Он находится в спецификации уровня DOM-1 - http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html#ID-94282980 «порядковый индекс выбранного варианта. Значение -1 возвращается, если не выбран ни один элемент. Если выбрано несколько опций, возвращается индекс первой выбранной опции. " – benjaminbenben

+0

(.get (0) дает вам первый элемент raw dom из jQuery selection - http://api.jquery.com/get/) – benjaminbenben

1

$('#rating').val() возвращается null

http://jsfiddle.net/KFpFq/

Добавление атрибута value не работает в Chrome, хотя проверка на null делает.

console.log($('#rating').val()); //null 
console.log($('#rating').val() == "0"); //false 
console.log($('#rating').val() == null); //true 
+0

Никогда не знал, что такой сайт существует. безнравственный – user1829823

Смежные вопросы