我正在处理PHP-Jquery-Ajax提交信息表单,我想使用addclass和removeclass jquery方法,但我不能让它按照我的意愿工作,所以我的问题是:我怎么做修复下面的代码,以便根据用户输入添加css?
addclass和removeclass在函数verificaForm中我验证输入字段,在这种情况下我只显示两个字段验证但还有更多...我也知道有一个库(validate.js)这有助于验证用户的输入,但在这种特定情况下,我必须要熟悉这段代码。
这是我的js代码并提前感谢:
$(document).ready(function () {
$('#ID_formulario').on('submit', function (e) {
e.preventDefault();
var nombre = $('input#ID_nombre').val().trim();
var email = $('input#ID_email').val().trim();
if (validaForm(nombre, email)) {
$('#result').html("<b>resolviendo peticion...</b>");
var url = $(this).attr('action');
var data = $(this).serializeArray();
var type = $(this).attr('method');
//...more code goes here ... it works fine ...
}
});
});
function validaForm(nombre, email) {
if ((nombre == '') || nombre.replace(/s+/, '') == '') {
alert("Favor especificar nombre");
nombre.addClass('hightlight');
return false;
} else {
else nombre.removeClass('hightlight');
}
if (nombre.length < 4) {
alert('El valor del campo es muy corto');
return false;
}
if ((email == '') || email.replace(/s+/, '') == '') {
alert("Favor especificar correo");
return false;
}
return true;
}
答案 0 :(得分:1)
您应该将元素传递给函数,而不是值。然后您可以获取函数中的值。这样的事情:
var nombre = $('input#ID_nombre');
var email = $('input#ID_email');
if(validaForm(nombre, email))
....
function validaForm(nombre,email){
var nombre_value = nombre.val().trim();
var email_value = email.val().trim();
.......
答案 1 :(得分:1)
因此,您可以将类添加到jQuery对象而不是值。如下所示改变一切。
替换
var nombre = $('input#ID_nombre').val().trim();
var email = $('input#ID_email').val().trim();
if (validaForm(nombre, email)) {
使用
if (validaForm($('input#ID_nombre'), $('input#ID_email'))) {
并修改您的功能如下。
function validaForm(nombre,email) {
var nombreVal = $.trim(nombre.val());
var emailVal = $.trim(email.val());
if ((nombreVal == '') || nombreVal.replace(/s+/, '') == '') {
..........
..........
}
并在此处删除多余的其他内容:
} else {
else nombre.removeClass('hightlight');
}
并将其更改为
} else {
nombre.removeClass('hightlight');
}