Javascript 验证不适用于所有字段

Javascript 验证不适用于所有字段,javascript,validation,Javascript,Validation,我正在开发一个基本的web应用程序,我想验证其中的一些字段,有一些字段不是强制性的,但如果有,则应该像url一样有效 因此,我的代码是 validate:function(attrs){ var obTobeValidate={}; var regexp = /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g; obTobeVal

我正在开发一个基本的web应用程序,我想验证其中的一些字段,有一些字段不是强制性的,但如果有,则应该像url一样有效

因此,我的代码是

validate:function(attrs){

        var obTobeValidate={};
        var regexp = /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g;
        obTobeValidate.questionImageUrl=$("#addSolvedExampleContainer .solvedQuestionImage").val();
        obTobeValidate.solutionImageUrl=$("#addSolvedExampleContainer .solvedQuestionSolutionImage").val();
        obTobeValidate.videoUrl=$("#addSolvedExampleContainer .solvedQuestionVideoUrl").val();

        if(!attrs.title){
             alert("please mention title..");
             return false;
        }

        if(!attrs.question){
            alert("please enter the question");
            return false;
        }    


        if(!attrs.solution){
            alert("please enter the solution for the question..");
            return false;
        }

        if (obTobeValidate.questionImageUrl="" || obTobeValidate.questionImageUrl.match(regexp))
        {

            return true;
        }
        else{
            alert("please enter valid url of Question");
            return false;
        }

        if (obTobeValidate.solutionImageUrl="" || obTobeValidate.solutionImageUrl.match(regexp))
        {

            return true;
        }
        else{
            alert("please enter valid url for Solution..");
            return false;
        }

        if (obTobeValidate.videoUrl="" || obTobeValidate.videoUrl.match(regexp))
        {

            return true;
        }
        else{
            alert("please enter valid url for Video..");
            return false;
        }


            return true;


     },
执行此代码后,如果我将questionImageUrl留空,则会显示请输入有效的url,并且url验证在其他字段(如videoUrl等)中不起作用


请帮助我。

如果
If
语句使用赋值运算符(
=
)而不是比较器(
=

此外,如果条件有效,则不要返回,因为您需要检查其他字段,以便

validate: function (attrs) {

    var obTobeValidate = {};
    var regexp = /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g;
    obTobeValidate.questionImageUrl = $("#addSolvedExampleContainer .solvedQuestionImage").val();
    obTobeValidate.solutionImageUrl = $("#addSolvedExampleContainer .solvedQuestionSolutionImage").val();
    obTobeValidate.videoUrl = $("#addSolvedExampleContainer .solvedQuestionVideoUrl").val();

    if (!attrs.title) {
        alert("please mention title..");
        return false;
    }

    if (!attrs.question) {
        alert("please enter the question");
        return false;
    }


    if (!attrs.solution) {
        alert("please enter the solution for the question..");
        return false;
    }

    if (obTobeValidate.questionImageUrl != "" && !obTobeValidate.questionImageUrl.match(regexp)) {
        return false;
    }

    if (obTobeValidate.solutionImageUrl != "" && !obTobeValidate.solutionImageUrl.match(regexp)) {
        alert("please enter valid url for Solution..");
        return false;
    }

    if (obTobeValidate.videoUrl != "" && !obTobeValidate.videoUrl.match(regexp)) {
        alert("please enter valid url for Video..");
        return false;
    }

    return true;
}

你能和JSFIDLE链接分享这个吗?这将有助于更好地理解这个问题。