17

jQueryに次のコードがあります。element のオプション値が「0」
の場合、検証メッセージ「Year Required」を表示する必要があります。select

<script type="text/javascript">
$(document).ready(function () {
   $("#register").validate({
       debug: true,
       rules: {
           year: {
               required: function () {
                   if ($("#year option[value='0']")) {
                       return true;
                   } else {
                       return false;
                   }
               }
           }
       },
       messages: {
           year: "Year Required",
       },
   });
})
</script>

セレクトボックス

<select name="year"  id="year">
    <option value="0">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
4

5 に答える 5

47

value=""最初の 内で設定できないため、組み込みのメソッドoptionを使用して独自のルールを作成する必要があります。addMethod()

jQuery :

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                selectcheck: true
            }
        }
    });

    jQuery.validator.addMethod('selectcheck', function (value) {
        return (value != '0');
    }, "year required");

});

HTML :

<select name="year">
    <option value="0">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

実際のデモ: http://jsfiddle.net/tPRNd/


元の回答:value="" (最初の 内で 設定できる場合のみoption)

selectjQuery Validate プラグインを使用して要素を適切に検証するには、最初の要素にoptionが含まれている必要がありますvalue=""0したがって、からを削除するvalue="0"と修正されます。

jQuery :

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                required: true,
            }
        }
    });

});

HTML :

<select name="year">
    <option value="">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

デモ: http://jsfiddle.net/XGtEr/

于 2013-02-15T21:45:16.460 に答える
10

選択リストに必須ルールを配置するには、空の値を持つオプションが必要です

<option value="">Year</option>

その場合は、required を単独で適用するだけで十分です

<script>
    $(function () {
        $("form").validate();
    });
</script>

フォーム付き

<form>
<select name="year" id="year" class="required">
    <option value="">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
<input type="submit" />
</form>

フィドルはこちら

于 2013-02-15T16:00:04.550 に答える
1

http://docs.jquery.com/Plugins/Validation/Methods/required

選択リストから0またはnull値が選択されているかどうかを確認するには、以下のように「select」のコードを編集します。

case 'select':
var options = $("option:selected", element);
return (options[0].value != 0 && options.length > 0 && options[0].value != '') && (element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
于 2013-02-28T09:53:19.017 に答える
0

全体を少し単純化し、一部のブラウザーを爆破するコンマに関するいくつかの問題を修正します。

  $(document).ready(function () {
       $("#register").validate({
           debug: true,
           rules: {
               year: {
                   required: function () {
                       return ($("#year option:selected").val() == "0");
                   }
               }
           },
           messages: {
               year: "Year Required"
           }
       });
   });

仮定にジャンプすると、選択にこの属性がないはずですvalidate="required:true"か?

于 2013-02-15T14:45:18.027 に答える