1

このスレッドの回答のようにフォーマットされているように見えるルールがありますが、正しく検証されません。このルールをコメントアウトすると、フォームの残りの部分で検証が適切に実行されます。私が見つけた他の構文エラーは同じ結果を引き起こしたので、ここに構文エラーがあると思いますが、それを見つけることができるかどうかはわかりません.

ルールは

freq: {
    required: {
        depends: {function(element){
            return $('#freqBand').val().length > 0 &&
            $('#freqBand').val() != "24GHz");
            }
        }
    }
},

入力フィールドの freqBand (選択入力) の値が「24GHz」以外の場合、または何もない場合は、freq フィールドが必要であると予想しています。

私はちょうどjqueryを学んでいるので、それは本当の額のスラッパーかもしれません.

編集 11/28

さらにトラブルシューティングを行ったところ、$('#freqBand').val() が未定義であることがわかりました。

HTMLで次のように見つかります

<select  name="freqBand" tabindex="6">
        <option value="" label="&ndash;Choose&ndash;" >&ndash;Choose&ndash;</option>
        <option value="27MHz" label="27 MHz" >27 MHz</option>
        <option value="50MHz" label="50 MHz" >50 MHz</option>
        <option value="75MHz" label="75 MHz" >75 MHz</option>
        <option value="24GHz" label="2.4 GHz" >2.4 GHz</option>
</select>

query validate docs は、選択要素の正しい構文は次のようにする必要があると述べています

$("select.freqBand option:selected").val()

しかし、それも未定義に解決されます。この追加情報は、誰かが私を助けるのに役立ちますか?

4

3 に答える 3

1

これが古い投稿であることは知っていますが、現在、同様の問題が発生しています。#そうは言っても、 name 属性にid セレクターを使用することは心配です。私が見つけたものから、idセレクターは名前属性に使用されることは決してなく、名前属性はセレクターを介してアドレス指定する必要があります[name='name']

参照: HTML の Name vs Id 属性

これで問題が完全に解決するわけではありませんが、後ではなく今すぐに注意する必要があることは間違いありません。改めて、1年経ったことを知りました。さらに、name 属性の id セレクターについて私が正しければ、コードの大きな問題は解決されています。

それ以外は、Joke_Sense の情報はすべて真実であり、関連性があります。

ああ、私は StackOverflow を初めて使用します (まだアカウントを作成していないと思いますが)。誰かが私にこの反応があったかどうかについてフィードバックを与えることができれば...まあ、それは単なる余談でした. 建設的な批判を求めているだけです。私には知識とノウハウがあります。自分を馬鹿にしたくないだけです。

于 2014-10-24T15:09:59.810 に答える
0

これは古いスレッドであり、おそらく解決されていますが、試してみることにしました。

私が目にする最も明白な問題は、select 入力に ID が割り当てられていないにもかかわらず、depends ステートメントで ID を呼び出していることです: $('#freqBand').val()。そのように要素を参照するには、select に ID を追加する必要があります。

また、検証ステートメントにも括弧がないことに注意してください。「24GHz」の後に終わりがありますが、最初のものはありません。これも問題を引き起こしている可能性があります。

また、なぜ長さを使用しているのかわかりません。値に何かが含まれていることを確認したいのではないかと思うので、依存ステートメントを少し修正するかもしれません。

とにかく、これらの 3 つすべてが動作します (バージョン 1.13.1 を使用して検証済み):

freq: {
    required: { 
        depends: function(element){
            return ($("#freqBand").val() != "" &&  $("#freqBand").val() != "24GHz")
        } 
    } 
}

freq: {
    required: { 
        depends: function(element){
            return ($("select[name=freqBand]").val() != "" &&  $("select[name=freqBand]").val() != "24GHz")
        } 
    } 
}

freq: {
    required: { 
        depends: function(element){
            return ( ($("select[name=freqBand]").val().length > 0) &&  $("select[name=freqBand]").val() != "24GHz")
        } 
    } 
}

お役に立てれば。

于 2015-05-08T12:58:01.110 に答える
0

後に欠落colonしています。braces依存後の追加は不要です。これを試してください:

freq: {
required: {
    depends: function(element){ //Missing colon here and no opening braces required
        return ($('#freqBand').val().length > 0 &&
        $('#freqBand').val() != "24GHz")); 
        }
     }
},
于 2013-11-28T04:23:29.693 に答える