編集:これは実際にはノックアウト、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;
}
}