0

このコード行で、jQuery バリデーターが特定のフォーム フィールドを検証できるようにします。

<script>
$(function() 
{
    $( "#date").datepicker( {autoSize: true, dateFormat: 'yy/mm/dd', showAnim: 'show' } );
});
$(function() 
{
    $( "#starttime, #stoptime, #starttime2, #stoptime2, #starttime3, #stoptime3, #starttime4, #stoptime4" ).timepicker( {autoSize: false, showAnim: 'show' } );
}); 
</script>

<script>
    $(function() {
        $("#productionlogform").validate({
            rules:  {
                date:   {
                    required: true,
                },
                starttime:  {
                    required: true,
                },
                stoptime:   {
                    required: true,
                }
            }
        });
    });
</script>   

ご覧のとおり、date、starttime、および stoptime は必須であるため、フォームを設定する前に投稿することはできません。

フォームに削除ボタンがあると、これは非常に面倒です...

そのボタンが検証ルールをバイパスできるようにする方法はありますか?

4

2 に答える 2

1

また、サーバー側でも検証することを忘れないでください。クライアント側の検証は、人々が悪い/悪意のあるデータを入力するのを防ぐために、絶対に信頼すべきではありません。

于 2013-01-08T13:46:19.497 に答える
0

申し訳ありませんが、Bhavik Shahはあなたの答えを受け入れることができませんが、とにかく、validationEventTriggerがその仕事をしました。私のコードを書き直して、次のようになります:

<script>
    $(function() {
    $("#deleteproductionlog").click(function () { 
        $("#productionlogform").validate().cancelSubmit = true;
    });
    $("#newproductionlog").click(function () { 
        $("#productionlogform").validate().cancelSubmit = true;
    });         
        $("#productionlogform").validate({
            rules:  {
                date:   {
                    required: true,
                },
                starttime:  {
                    required: true,
                },
                stoptime:   {
                    required: true,
                }
            },
        });     
    });
</script>

「deleteproductionlog」および「newproductionlog」という名前のボタンは、「productionlogform」と呼ばれるフォームの検証をスキップします。

于 2013-01-09T10:55:00.840 に答える