我有一個問題,我似乎無法來解決。首先可能相關的一些背景。阿賈克斯,jQuery驗證和MVC
我建立一個MVC樣(我說「喜歡」,因爲我仍然在學習如何MVC的作品),我的軟件PHP框架。我希望所有輸入表單都通過ajax將數據提交給後端控制器,後者將數據路由並將其輸入到相應的數據庫中。所有的HTML代碼都是通過php類和通過php類包含的JavaScript生成的。
我遇到的問題是用AJAX功能。當我希望它異步提交時,它會繼續嘗試正常提交發布請求。我已經在各個時間點正常工作,但是當我改變框架的各個方面時,它似乎中斷了。我試過了各種各樣的「form.preventDefault()」和「return false」的組合,但它似乎並不重要。驗證部分工作(不會使用無效條目提交,使用this插件)。我發現JavaScript緩存本身,並且通過將版本號附加到文件名來解決這個問題。
這裏是Ajax代碼。它向用戶返回關於請求狀態的消息。任何想法爲什麼它拒絕提交異步?
$(document).ready(function() {
// Initialize form validation
***old code
$("form[name='ajaxform']").validate({ ***
// Specify validation rules
***Updated code
$('#ajaxsubmit').on('click', function() {
$("#ajaxform").valid();
});
// Initialize form validation
$('#ajaxform').validate({ ***
....[omitting the validation rules for brevity]
errorElement : 'div',
errorLabelContainer: '#usermessage',
submitHandler: function(form) {
$.ajax({
cache : false,
url : $(form).attr('action'),
type : 'POST',
dataType: 'text',
data : $(form).serialize(),
success : function(data) {
var response = $.parseJSON(data);
if(response['error']){
$('#usermessage').html(response['error']);
}else{
if(response['success']){
$('#usermessage').css({"color":"#00b300","font-weight":"bold"});
$('#usermessage').html(response['success']);
}
}
},
error : function(err) {
alert(err);
}
});
return false;
}
});
});
@shamelessApathy,因爲驗證插件響應表單提交,你會怎麼觸發的插件,如果你改變了按鈕類型「按鈕,」你說什麼? – AppreciateCo
我剛剛發現了這個。 https://www.google.com/url?sa=t&source=web&rct=j&url=https://stackoverflow.com/questions/13671710/jquery-form-validation-on-button-click&ved=0ahUKEwjH3P75k7TVAhVV2GMKHYViD-AQFggeMAE&usg=AFQjCNE9Q6JDrlG0zgDxgSCvEuoLggLruw。我會嘗試並回復你。謝謝! – AppreciateCo