Javascript -一个函数中的多个任务无法工作

Javascript - multiple tasks in one function not working

本文关键字:任务 工作 函数 一个 Javascript      更新时间:2023-09-26

我得到了一个脚本,从表单输入修剪http或https。

这是我的脚本:

          function MakeLinkSafe(){  
                var f = document.getElementById('f') 
                str = trim(f.value);  
                if(str.substr(0, 7) == 'http://'){  
                    f.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    f.value = str.substr(8);  
                }
                return true; 


                var fb = document.getElementById('fb')
                str = trim(fb.value);  
                if(str.substr(0, 7) == 'http://'){  
                    fb.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    fb.value = str.substr(8);  
                }
                return true;

            }  

当我把一个url在我的"f"输入,而我离开我的"fb"空,反之亦然,它的工作。但当我在两个输入中都输入url时。这行不通。

我的代码有问题吗?谢谢你

这是因为在检查"f"元素之后有一个返回语句…

修改代码如下:

function MakeLinkSafe() {
    var checkF = function () {
        var f = document.getElementById('f');
        str = trim(f.value);  
        if (str.substr(0, 7) == 'http://') {  
            f.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            f.value = str.substr(8);  
        }
        return true; 
    }
    var checkFB = function () {
        var fb = document.getElementById('fb');
        str = trim(fb.value);  
        if (str.substr(0, 7) == 'http://') {  
            fb.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            fb.value = str.substr(8);  
        }
        return true;
    }
    return checkF() && checkFB();
}  

当然,你可以创建一个接受id的函数来利用适当的函数,就像上面提到的mrida…下面这些行可能会做:

function MakeLinkSafe() {
    var check = function (id) {
        var element = document.getElementById(id);
        str = trim(element.value);  
        if (str.substr(0, 7) == 'http://') {  
            element.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            element.value = str.substr(8);  
        }
        return true; 
    }
    return check('f') && check('fb');
}  

您的代码片段无法访问

 var fb = document.getElementById('fb')
                str = trim(fb.value);  
                if(str.substr(0, 7) == 'http://'){  
                    fb.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    fb.value = str.substr(8);  
                }
                return true;

在到达上述代码之前,函数已经退出,返回值为true。

一种方法是这样做(这段代码将修复你的链接和警报为真,以防两者都是安全链接。

        function MakeLinkSafe(linkid){
             var f = document.getElementById(linkid) 
            str = trim(f.value);  
            if(str.substr(0, 7) == 'http://'){  
                f.value = str.substr(7); return true; 
            }  
            if(str.substr(0, 8) == 'https://'){
                f.value = str.substr(8);  return true;
            }
            return false;
        }
        var f = MakeLinkSafe('f');
        var fb = MakeLinkSafe('fb');
        if(f&&fb)alert(true);else alert(false);