我有一个问题,我似乎无法来解决。首先可能相关的一些背景。阿贾克斯,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