使用Jquery使用SELECT字段进行表单验证

时间:2013-09-18 17:24:12

标签: jquery html forms

Jquery当没有从评级表单中选择任何值时,没有提醒我。 是因为selected =“selected”实际上被视为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();

   })

3 个答案:

答案 0 :(得分:2)

那是因为如果没有指定值,默认值将是文本。

0的值设为默认选项并检查:

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

答案 1 :(得分: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

答案 2 :(得分:0)

您可以使用原生selectedIndex查找第一个选择的索引 - https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement

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