私は2つのボタンを持つフォームを持っています
a) テスト - ボタンをクリックすると、JavaScript 関数が呼び出され、いくつかの資格情報が検証されます。
b) 作成 - ボタンをクリックすると、フォームを保存するために JavaScript 関数が呼び出されます。@Messages("playauthenticate.project.create")
アクションのないこれら 2 つの送信ボタンの周りにフォーム タグがあります。
name、description、accessKey、secretKey は、フォーム内の 4 つのフィールドです。
作成ボタンをクリックすると、jquery 検証を実行してフォームを送信したいのですが、javascript 関数で jquery 検証 submitHandler が呼び出されず、エラー コンソールにエラーが表示されません。
作成ボタンをクリックすると、作成アラートが表示され、フォームがリセットされ、URL に入力されたすべてのパラメーターを確認できます。
$("create").click(function() {
alert("create ");
$('#projectForm').validate( {
rules: {
name: {
minlength: 6,
required: true
},
description: {
required: true,
description: true
},
accessKey: {
minlength: 10,
required: true
},
secretKey: {
minlength: 15,
required: true
}
},
focusCleanup: false,
wrapper: 'div',
errorElement: 'span',
highlight: function(element) {
$(element).parents ('.control-group').removeClass ('success').addClass('error');
},
success: function(element) {
$(element).parents ('.control-group').removeClass ('error').addClass('success');
$(element).parents ('.controls:not(:has(.clean))').find ('div:last').before ('<div class="clean"></div>');
},
errorPlacement: function(error, element) {
error.appendTo(element.parents ('.controls'));
},
submitHandler: function() {
alert("hello");
var name = $('#name').val();
var description = $('#description').val();
var accessKey = $('#accessKey').val();
var secretKey = $('#secretKey').val();
var dataString = 'name='+ name + '&description=' + description + '&accessKey=' + accessKey+ '&secretKey=' + secretKey;
//alert(dataString);
$.ajax({
type: "POST",
url: "/demo/save",
data: dataString,
success: function(data) {
$('#result').html("<h2>demo created successfully!</h2>");
},
error: function(data) {
$("#result").html("<h2>Error!</h2>");
}
})
}
});
});
JSfiddle - http://jsfiddle.net/NJxh5/3/ ありがとう