【发布时间】:2011-07-21 21:54:01
【问题描述】:
当我点击提交按钮时,我有这个功能:
$('#signup-button').click(function(event){
var username_check = validateUsernameField();
var email_check = validateEmailField();
var name_check = validateNameField();
var birthdate_check = validateBirthdateField();
event.preventDefault();
if(username_check && email_check && name_check && birthdate_check) {
alert('lol');
var formData = $('#FonykerAddForm').serialize();
$.ajax ({
type: 'POST',
url: '<?php echo $html->url('/fonykers/add',true); ?>',
data: formData,
dataType: 'json',
success: function(response) {
$( "#confirm-dialog" ).html(response.msg).dialog({
autoOpen: false,
modal: true,
height: 140,
title: response.title
});
$('#confirm-dialog').dialog('open');
},
error: function (xhr, ajaxOptions, thrownError){
alert('Cualquier vaina');
alert(xhr.statusText);
alert(thrownError);
}
});
}
});
我之前在我的字段上调用了模糊事件的验证方法,它们都工作并且这里的验证似乎工作,问题是在 if 语句之后没有任何反应,表单没有提交。有人知道为什么吗?如果没有,您能想出一个更好的方法来在提交之前验证我的所有字段吗?
【问题讨论】:
-
您是否尝试过在 Firebug 中设置断点并逐行执行。此外,您可以尝试在表单“提交”事件上运行,例如$('form.my_form').submit(function() { if ($(this).find('input.my_input').val().length > 20) { return false; //return false 阻止提交of form } return true; //提交表单 });
-
您检查过您的
if是否曾经是true? -
定义一个匹配的
else{alert("!lol");}看看是否显示 -
好吧,它进入了else,这很奇怪,因为所有的字段都被标记为有效(它们正常时变成绿色)
-
在萤火虫中运行我看到除了birthdate_check之外它们都标记为未定义
标签: jquery forms validation