Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在PHP中使用jquery addclass和removeclass_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 在PHP中使用jquery addclass和removeclass

Javascript 在PHP中使用jquery addclass和removeclass,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在开发一个PHP Jquery Ajax提交信息表单,我想使用addclass和removeclass Jquery方法,但我不能让它按我所希望的那样工作,所以我的问题是:我必须如何修复下面的代码才能根据用户输入添加css addclass和removeclass在函数VerificationForm中,我在其中验证输入字段,在本例中,我只显示两个字段验证,但还有更多。。。我还知道,有一个库(validate.js)可以帮助验证用户的输入,但在这个特定的情况下,我必须仔细阅读这段代码 这是我

我正在开发一个PHP Jquery Ajax提交信息表单,我想使用addclass和removeclass Jquery方法,但我不能让它按我所希望的那样工作,所以我的问题是:我必须如何修复下面的代码才能根据用户输入添加css

addclass和removeclass在函数VerificationForm中,我在其中验证输入字段,在本例中,我只显示两个字段验证,但还有更多。。。我还知道,有一个库(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;
}
$(文档).ready(函数(){
$('ID_formulario')。关于('submit',函数(e){
e、 预防默认值();
var nombre=$('input#ID_nombre').val().trim();
var email=$('input#ID_email').val().trim();
if(有效形式(名称,电子邮件)){
$('#result').html(“resolviendo peticion…”);
var url=$(this.attr('action');
var data=$(this.serializeArray();
var type=$(this.attr('method');
//…这里有更多代码…工作正常。。。
}
});
});
函数有效形式(名称、电子邮件){
如果((nombre='')| | nombre.replace(/s+/,'')=''){
警惕(“偏好特定名称”);
名称addClass(“hightlight”);
返回false;
}否则{
其他名称为removeClass(“hightlight”);
}
if(标称长度<4){
警报(“坎波河谷-穆伊科尔托”);
返回false;
}
如果((email='')| email.replace(/s+/,'')=''){
警惕(“偏爱特别的科雷奥”);
返回false;
}
返回true;
}

您应该将元素传递给函数,而不是值。然后可以在函数中获得值。诸如此类:

 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();
   .......

因此,您可以将类添加到jQuery对象中,而不是添加到值中。像下面这样改变周围的事物

替换

var nombre = $('input#ID_nombre').val().trim();
var email = $('input#ID_email').val().trim();

if (validaForm(nombre, 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');
}

语法错误,
else
位于错误的位置?您正在使用var nombre with.val().trim()。您需要将类添加到输入,而不是输入的val()。如果您创建另一个变量,如var nombre=('input#ID_nombre');这会奏效的。十分钟前我也是这么回答的!?谢谢,addclass方法应该放在函数的第一个if中,对吗?看起来像:),但这也取决于你的需要。谢谢LShetty,两个答案(Francesco和你的)都解决了我的问题你是对的,不好意思,顺便问一下,你如何在代码中使用addclass和removeclass方法,它可能是这样的:nombre_value.addclass(“myclass”);?不,它将是
nombre.addClass(“className”)
,这就是为什么必须传递元素而不是值
} else {
    nombre.removeClass('hightlight');
}