29

ここから検証プラグインを使用しています。ドロップダウンリストでオプションを選択するようにユーザーに強制しようとしているので、リストのHTMLは次のとおりです。

Select the best option<br/>
<select name="dd1" id="dd1">
<option value="none">None</option>
<option value="o1">option 1</option>
<option value="o2">option 2</option>
<option value="o3">option 3</option>
</select> <br/><br/>​

そして、これがjquery検証のものです:

$("#everything").validate({
    onsubmit: true,
    rules: {
     dd1: {
      required: {
        depends: function(element) {
            return $("#dd1").val() == "none";
        }
      }
    },
    messages: {
     dd1: {
      required: "Please select an option from the list, if none are appropriate please select 'Other'",
     },
    }
});

問題はありませんが、ドロップダウンリストから[なし]を選択して[送信]をクリックしても、検証されないため、メッセージは表示されません。誰かが私が間違っていることを教えてもらえますか?

4

7 に答える 7

74

州のドキュメントrequired()

ユーザーに選択ボックスからオプションを選択させるには、次のような空のオプションを指定します。<option value="">Choose...</option>

タグに含めることvalue="none"<option>、検証呼び出しが行われるのを防ぐことができます。カスタム検証ルールを削除して、コードを簡素化することもできます。これが実際の動作を示すjsFiddleです。

http://jsfiddle.net/Kn3v5/

属性を空の文字列に変更できない場合はvalue、何を伝えるべきかわかりません...それ以外の方法で検証する方法が見つかりませんでした。

于 2012-09-17T22:35:24.297 に答える
8

私たちが知っているように、jQuery検証プラグインは空白の値がある場合に選択フィールドを無効にします。必要に応じて値を空白に設定してみませんか。

はい、事前定義された値を使用して選択フィールドを検証できます。

$("#everything").validate({
    rules: {
        select_field:{
            required: {
                depends: function(element){
                    if('none' == $('#select_field').val()){
                        //Set predefined value to blank.
                        $('#select_field').val('');
                    }
                    return true;
                }
            }
        }
    }
});

選択フィールドに空白の値を設定できますが、設定できない場合もあります。例:ドロップダウンフィールドを生成する関数を使用していて、それを制御することはできません。

それが私を助けるので、それが役立つことを願っています。

于 2014-03-04T04:55:10.277 に答える
3

これが私の解決策でした:

selectタグにrequiredを追加しました:

                <div class="col-lg-10">
                <select class="form-control" name="HoursEntry" id="HoursEntry" required>
                    <option value="">Select.....</option>
                    <option value="0.25">0.25</option>
                    <option value="0.5">0.50</option>
                    <option value="1">1.00</option>
                    <option value="1.25">1.25</option>
                    <option value="1.5">1.50</option>
                    <option value="2">2.00</option>
                    <option value="2.25">2.25</option>
                    <option value="2.5">2.50</option>
                    <option value="3">3.00</option>
                    <option value="3.25">3.25</option>
                    <option value="3.5">3.50</option>
                    <option value="4">4.00</option>
                    <option value="4.25">4.25</option>
                    <option value="4.5">4.50</option>
                    <option value="5">5.00</option>
                    <option value="5.25">5.25</option>
                    <option value="5.5">5.50</option>
                    <option value="6">6.00</option>
                    <option value="6.25">6.25</option>
                    <option value="6.5">6.50</option>
                    <option value="7">7.00</option>
                    <option value="7.25">7.25</option>
                    <option value="7.5">7.50</option>
                    <option value="8">8.00</option>
                </select>
于 2014-12-01T16:58:12.323 に答える
3

それを成し遂げる最も簡単な方法は、requiredあなたに追加することですselect

Select the best option
<br/>

<select name="dd1" id="dd1" required>
<option value="none">None</option>
<option value="o1">option 1</option>
<option value="o2">option 2</option>
<option value="o3">option 3</option>
</select> 

<br/><br/>​
于 2018-05-16T12:33:46.303 に答える
1
    <div id="msg"></div>
<!-- put above tag on body to see selected value or error -->
<script>
    $(function(){
        $("#HoursEntry").change(function(){
            var HoursEntry = $("#HoursEntry option:selected").val();
            console.log(HoursEntry);
            if(HoursEntry == "")
            {
                $("#msg").html("Please select at least One option");
                return false;
            }
            else
            {
                $("#msg").html("selected val is  "+HoursEntry);
            }
        });
    });
</script>
于 2016-03-30T08:33:15.600 に答える
0
$(document).ready(function(){
$("#HoursEntry").change(function(){
var HoursEntry = $(#HoursEntry option:selected).val();
if(HoursEntry == "")
{
$("#HoursEntry").html("Please select");
return false;
}
});
});
于 2014-12-17T05:15:42.047 に答える
-1

コードを少し変更しました。これが(私にとって)動作するバージョンです:

    <select name="dd1" id="dd1">
       <option value="none">None</option>
       <option value="o1">option 1</option>
       <option value="o2">option 2</option>
       <option value="o3">option 3</option>
    </select>  
    <div style="color:red;" id="msg_id"></div>

<script>
    $('#everything').submit(function(e){ 
        var department = $("#msg_id");
        var msg = "Please select Department";
            if ($('#dd1').val() == "") {
                department.append(msg);
                e.preventDefault();
                return false;
            }
        });
 </script>
于 2016-07-11T05:57:58.813 に答える