我想验证我的注册表单,但我有每个文本输入的默认值。用jquery validate插件尝试了所有可能的方法。很难理解如何使用它(我是js的新手)我想做的是忽略默认值并验证表单。我的表单看起来像那样
<from id="reg">
<input class="part1 default" type="text" name="fname" id="fname" value="Adınız (First Name)"/>
<input class="part1 default" type="text" name="mname" value="Atanızın adı (Middle name)"/>
</form>
我正在使用这段代码
var defaultValues = {
'fname': 'Adınız',
'mname': 'Atanızın adı',
'lname': 'Soyadınız',
'phone': 'Telefon',
'email': 'Email',
'pwd':'Şifrə',
'region':'Rayon',
'school':'Məktəb',
'login':'Istifadəçi adı',
'class':'Sinif',
'subject':'Fənnin adını daxil edin',
'dob': 'Date of Birth'
};
$('input').live('focus', function() {
var el = $(this);
if (el.hasClass('default')) {
el.removeClass('default').val('');
}
if (el.attr('id') === 'dob') {
$(this).mask('99.99.9999', {placeholder:' '});
}
});
$('input').live('blur', function() {
var el = $(this);
var name = el.attr('name');
// Really we only want to do anything if the field is *empty*
if (el.val().match(/^[\s\.]*$/)) {
// To get our default style back, we'll re-add the classname
el.addClass('default');
// Unmask the 'dob' field
if (name == 'dob') {
el.unmask();
}
// And finally repopulate the field with its default value
el.val(defaultValues[name]);
}
});
/*validation*/
$('#reg').submit(function (event)
{
if ($('#fname').val() == defaultValues['Adınız'] || $.trim($('#pwd').val()) == '')
{
alert('Please enter the name!');
return false;
}
else
{
if ($('#fname').val().length < 2)
{
alert('The name must be >2 letters!');
return false;
}
}
});
您看到的最后一部分是验证。我有一个关于它的问题
答案 0 :(得分:2)
不是将默认值放在“value”属性中,为什么不将其设置为“占位符”。
<input type="text" name="fname" id="fname" placeholder="Adınız (First Name)"/>
然后你可以做定期验证......
答案 1 :(得分:1)
如果还好,我们想继续提交流程怎么办?我是否需要为它写新的东西,如果用“return true?”结束这个?
是。 return true;
我使用了这段代码,但它总是给我相同的错误消息“请输入密码!”即使填写了所有输入字段。我们如何修改此代码以警告错误数组?例如,如果我的传递类型错误且名称字段未填充,则脚本将一次显示2个错误。
您需要先收集所有错误,然后显示包含所有错误的消息,例如使用像数组一样的复合数据结构。
我也考虑过逻辑:例如,每当某些情况属实时,它会推送数组错误消息,当它完成检查所有情况时,显示错误数组。但无法实现它。如何验证电子邮件字段和出生日期字段(看起来像“19.16.2010”)?
您需要为每种类型的数据提供验证例程。然后,您可以为包含该数据类型的每个字段调用相应函数:
form element -> data-type -> validation function
也许你应该只使用jquery验证插件来避免麻烦?我认为你不是第一个遇到这个问题的人,所以值得深入研究。