Asp.Netマスターページの場合はjquery.validate検証


正直に言うと、母版ページは本当に爱して憎んでいるものですが、どうしてそう言いますか.
マスターページを使用しないときにコードに問題があるかどうかはまだ発見されていませんが、結果的にマスターページを加えると問題が次々と来て、クラッシュを感じさせます.
くだらないことは言わないで、母版のページは実はとても良くて、さもなくば私はどうしてjqueryを知らなければなりません.validateはどのようにしてマスターページの下でフォーム検証を行いますか?
次に、マスターページとjqueryについて2つのvisual studioバージョンで説明します.validate検証の問題
まず、visual studio 2005で
通常のマスターページのフォーマットはこうです



XX  





XXシステム

ここではフォームform 1がコントロールを包んでいることに注意してください.コンテンツページは対応するコントロールごとに書かれていることを知っています.だから、マスターページに「制限」されているaspxページ全体にform idが1つしかないという問題が見つかります.それはこのマスターページのform 1です.
一見何もないようですが、jqueryを使うならよく考えてみてください.validateフォームの検証では、ちょっと変な感じがしますか?
私たちはjqueryを知っているからです.validateのフォーマットは、セレクタ(selector)で検証するフォームを選択するform IDです.しかし、コンテンツページには対応するform idが見えないようです.母版ページにあるので、友达が私のように思っていますか?
以前にマスターページを使用していなかった場合、複数のフォームがあれば、異なるフォームIDに基づいて以下の操作を行うことができます.
$(document).ready(function ({
$("#form1 id").validate();
$("#form2 id").validate();
$("#form3 id").validate();
})

しかし、今はマスターページを使っています.上のhtmlの内容によると、私たちは書くしかありません.
$(document).ready(function ({
$("#form1").validate();
})

こう書けば、jqueryのコードをマスターページに移すのではないかと思うかもしれません.これですべてのコンテンツページのhtmlに上書きできますか?しかしまたこのvalidate管の事が多いと感じますか?異なるコンテンツ・ページで検証するコントロールを区別できますか?
この問題はここで説明します.
このように、私たちがプログラムを実行するとき、コントロールのページを検証し、マウスの右ボタンをクリックしてソースコードを表示すると、マスターページの内容とコンテンツページの内容がよく接続されていることがわかります.そして、このページのform idを見ることができます.だから、実際には上の心配は余計です.jquery自体はフロント技術で、jsの派生品です.したがって、フロントのことに注目し、マスターページを使用する場合、実行後、マスターページとコンテンツページは独立したページであり、この場合、現在のコンテンツページにコンテンツページコントロール検証のjqueryを挿入するだけでよい.validateコードでいいです.だから上の心配は余計だ.
母版ページを使っても、私たちは同じように以前の考えを使って、それぞれの内容ページにjqueryを加えることができます.validate.
こんなにたくさん言ったのに、visual studio 2005と何の関係があるのかまだ話していません.
実際には、visual studio 2005でマスターページについて、GridView、Reapterなどのコントロールのように、その中に含まれていれば、実行時に含まれるコントロールIDの前にctl 100_のような接頭辞が付けられるという問題がありますこのようなもの、みんなはすべて知っているべきで、だから以前このような事に出会った时、フロントコードを书いてコントロールIDを取って、いずれもデフォルトでこの接頭辞をプラスして、しかしこのようにとてもよくなくて、もし母版のページが変更があるならば、本当に一発で全身を动かして、変化量はとても大きいです.
今日一つの方法を知りました.個人的にはとてもいいと思います.以下のように書きます.
$(document).ready(function ({
$("#").validate();
})

この方法はコントロールにも適用され、実行時のフロントの本当のIDを直接見つけることができます.
例:
function InitRules() {
    opts = {
         rules:
         {
                :
                {
                    required: true
                },
                :
                {
                    required: true,
                    minlength: 6
                },
                :
                {
                    required: true,
                    minlength: 6,
                    equalTo:"#"
                },
                :
                {
                    required: true
                },
                :
                {
                    required: true,
                    number: true,
                    range: [1,99]
                },
                :
                {
                    email: true
                }
         },
         messages:
         {
                :
                {
                    required:"           ?"
                },
                :
                {
                    required:"          ?",
                    minlength:"       6 "
                },
                :
                {
                    range:"        ,  1-99    "
                }
         }
    }
}

ただし、ここでは、フォームIDに対して$("#")メソッドを用いてIDを取得する場合、この$("#")について説明する.validate();母版ページのbodyに入れなければならないのですが、具体的にはなぜこうするのか、私はまだ深く考えていません.理解している友达に伝言を残して答えてほしいです.
もう一つ、visual studio 2005では、マスターページのデフォルトform idはform 1ですが、あなたが変更しなければ、実行後にこのform 1がaspnetFormになるので、このように書く人が多いのもおかしくありません
$(document).ready(function ({
$("#aspnetForm").validate();
})

visual studio 2010のマスターページについてお話しします
マイクロソフトはこのバージョンでもっと人間的になったかもしれませんが、自動的にaspnetFormにはならないので、正常に使えばいいです.
コンテンツページの中で検証を加える場合は、
$(document).ready(function ({
$("#form1").validate();
})

ここでは、マスターページのform idをそのまま使えばいいので注意してください.
もちろんID.ClientIDという形を使いたいなら、
$(document).ready(function ({
$("#").validate();
})

このコードはマスターページに追加されます.
最後にまとめて、visual studioのどんなバージョンでも、2点を覚えて、jqueryを使います.validateは問題ありません.
1、各フォームの検証コードが対応するコンテンツページに書き込まれている場合、選択したform idは実際の実行時に表示されるIDを書きます.
2、検証コードがマスターページに書かれている場合は、フォームの検証コントロールのIDを取得し、書き込む方法が望ましい.
この問題について、もし他の状況の間違いがあれば、私に連絡して、私たちは一緒に検討します.