0

編集:これは実際にはノックアウト、JQuery 1.10.2であり、jquery.unobtrusivevalidation ErrorPlacement関数をオーバーライドしようとしています...フォーム要素での送信バインディング作業を停止します。

JQuery 1.8.2 で同じコードを実行すると、JQuery ファイルを 1.10.2 に変更するだけで送信関数が起動しなくなります...これに似たものを見た人はいますか?

予期しない何かが発生した場合に備えて、できるだけ多くの関連コードを投稿しますが、主なポイントは、フォーム送信イベントにバインドされた submitForm が jquery 1.8.2 で完全にうまく機能し、他の変更がなければ jquery 1.10.2 ではないということです。 submitForm に触れます (ブレークポイントと alert() ステートメントでテストします)。他のすべてのノックアウト バインディングはまだ機能しているようです。

助けてください。ありがとう。

<html>
<head>
<script src="/Content/Scripts/jquery-1.10.2.js"></script>
<script src="/Content/Scripts/jquery-ui/jquery-ui.js"></script>
<script src="/Content/Scripts/jquery-ui-timepicker-addon.js"></script>
<script src="/Content/Scripts/knockout-2.3.0.js"></script>
<script src="/Content/Scripts/knockout-helpers.js"></script>
<script src="/Content/Scripts/knockout.mapping-latest.js"></script>
<script src="/Content/Scripts/underscore.js"></script>
<script src="/Content/Scripts/date.js"></script>
<script src="/Content/Scripts/global.js"></script>
<script src="/Content/Scripts/jquery.blockUI.js"></script>
<script src="/Content/Scripts/jquery.dirtyform.js"></script>
<script src="/Content/Scripts/bootstrap/bootstrap.js"></script>
<script src="/Content/Scripts/sessionTimer.js"></script>
<script src="/Content/Scripts/jquery.livequery.js"></script>



<script src="/Content/Scripts/Ecdm/myCode.js"></script>




</head>


<form action="/Apply" data-bind="submit: submitForm" id="myApplicationForm"         method="post">

<!-- html form stuff -->

</form>
<script>

    var view; 

        $(function() {


        view = new ModelView({
                formSelector: '#myForm',
    });

  // Base JS model
        var model =
            {                
                someProperty: '@Model.SomeProperty',
};


view.bind(model);


});


</script>

</html>

myCode.js:

function ModelView(params) {

    var self = this;

  // Default parameters
    var args = $.extend({
    formSelector: 'form'    }, params);

   this.bind = function (model) {
  // Apply KO bindings
    ko.applyBindings(self);
    };


    this.submitForm = function () {
    var form = $(args.formSelector);
    form.validate();
    if (form.valid()) {
        var referenceNumber = $('#ReferenceNumber');

        if (a==b) {

            showConfirmation();

            return false;
        }

        g_showWait("Please wait...");
        return true;
    }

    return false;
}

}
4

1 に答える 1