¿Cómo puedo hacer que mi código de jQuery Validator se ejecute una segunda vez después de que ya se haya enviado un formulario?

Aquí está el escenario.

Un usuario rellena un formulario. Se olvida de alguna información requerida. Mi código de validación indica al usuario que se requiere el campo que falta. Rellena el formulario completamente y lo somete. Presto funciona.

Ahora, el usuario elimina manualmente el campo requerido y presiona enviar nuevamente. Presto funciona (SHOUDLNT). ¿Cómo puedo hacer que mi validación funcione una segunda vez para evitar que se envíen campos vacíos? Aquí está mi código. Solo funciona en 1 iteración de un formulario enviado. Todos los envíos posteriores ignoran mi validación.

Gracias...

//Validation  
$('#CommentsForm').validate({
    rules: {
        Author: "required",
        Message: "required"
    },
    messages: {
        Author: "Author is required.",
        Message: "Comment is required."
    },
    errorContainer: "#CommentsErrorBox",
    errorLabelContainer: "#CommentsErrorBox ul",
    wrapper: "li"
});

//User Clicked Submit Button
$('#CommentsForm').live('submit', function (e) {
    e.preventDefault(); //Prevent Browser from getting new url

    //Create JSON object
    var jsonCommentData = {
        ID: $('#HiddenID').val(),
        Author: $('#Author').val(),
        Message: $('#Message').val()
    }

    //Add the comment.
    $.ajax({
        url: '/Home/_CommentsAdd',
        type: 'POST',
        data: JSON.stringify(jsonCommentData),
        dataType: 'html',
        contentType: 'application/json',

        //The request was a success. Repopulate the div with new result set.
        success: function (data) {
            $('#AjaxComments').html(data);
            $('abbr.timeago').timeago(); //update the timestamp with timeago

            //Change colors of message.                
            if ($('#CommentStatus').html() == "Your Comment Has Been Added!") {
                $('#CommentStatus').css('color', 'GREEN');
            }
        },
        error: function (data) {
            alert('Fail');
        }
    });
});

Aquí está mi vista parcial: _Comentarios

@model DH.ViewModels.CommentsViewModel

<div id="AjaxComments">
@{
    <input type="hidden" id="HiddenPageNumber" value="@Model.PageNumber.ToString()" />
    <input type="hidden" id="HiddenPageCount" value="@Model.PageCount.ToString()" />

    //No Comments Yet
    if (Model.CommentStatus.Length > 0)
    {
            <div id="CommentStatus">@Model.CommentStatus</div>
    }

    foreach (var item in Model.Comment)
    {   
        <div class="CommentContainer">
            <div class="RateComment">
                <img src="/content/images/icons/Thumbs-Up-16x16.png" alt="Thumbs Up" title="Uprate Comment" style="margin-top: 10px;" />
                <div class="CommentRating">8</div>
                <img src="/content/images/icons/Thumbs-Down-16x16.png" alt="Thumbs Down" title="Downrate Comment" style="margin-top: 5px;" />
            </div>
            <div class="CommentHeader">
                <div class="CommentAuthor">@item.Author</div>
                <div class="MessageDate">
                    <img src="/content/images/icons/Clock-16x16.png" width="16" height="16" alt="Comment Time" style="vertical-align: middle; padding-bottom: 2px;" />
                    <abbr class="timeago" title="@item.MessageDate" style="border-bottom-width: 0;">@item.MessageDate</abbr>
                </div>
            </div>
            <div class="CommentMessage">@item.Message</div>
            <div style="clear: both;"></div>
        </div>
    }
}

<div id="Pagination">
@{ 
    //Setting up Increments of 10 Pagination links
    int StartPage;
    int EndPage;
    int PageNumber = Model.PageNumber;
    int PageCount = Model.PageCount;

    if (PageCount < 10) {
        StartPage = 1;
        EndPage = PageCount;
    }
    else {
        if (PageNumber < 10) {
            StartPage = 1;
            EndPage = 10;
        }
        else {
            StartPage = PageNumber - 5;
            EndPage = PageNumber + 4;
            if (EndPage > PageCount) {
                EndPage = PageCount;
                StartPage = EndPage - 9;
            }
        }
    }

    //Display "Page of" if there are comments.
    if (@Model.PageCount > 0)
    {
        <div id="PageOf">Page @Model.PageNumber of @Model.PageCount</div>
    }

    //Set up First and Prev arrow links
    if (Model.PageNumber > 1) {
        <a class="PaginationLink" title="Prev" href="">< Prev</a>
    }

    //Loop through and create the page #'s.
    for (var PageCounter = StartPage; PageCounter <= EndPage; PageCounter++) {
        //Display the Page # in a Black Box
        if (PageCounter == PageNumber) {
            <span class="CurrentPage">@PageNumber</span>
        }
        //Create the Page # Links.
        else {
            <a class="PaginationLink" title="@PageCounter" href="">@PageCounter</a>
        }
    }

    //Set up Next and Last arrow links
    if (Model.PageNumber < Model.PageCount) {
        <a class="PaginationLink" title="Next" href="">Next ></a>
    }
} 
</div>

<div id="CommentsFormContainer">
    <form id="CommentsForm" action="">
    <div id="CommentsErrorBox"><ul></ul></div>
    <fieldset id="CommentsFormFieldset">
        <legend id="CommentsFormLegend" align="center">Add a Comment</legend>
        <label for="Author" class="LabelAuthorMessage">Author:&nbsp;</label><input type="text" id="Author" name="Author" size="30" class="CommentInputs" />
        <label for="Message" class="LabelAuthorMessage">Comment:&nbsp;</label><textarea id="Message" name="Message" cols="35" rows="5" class="CommentInputs"></textarea>
        <input type="text" id="CharCount" value="0" readonly="readonly" />&nbsp;&nbsp;
        <label for="CharCount" id="LabelCharCount">* Max 200 Characters</label>
        <input type="submit" id="SubmitComment" value="Submit" name="SubmitComment" style="float: left; margin-left: 50px;" />
    </fieldset>
    </form>
</div>

Respuestas a la pregunta(1)

Su respuesta a la pregunta