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

时间:2013-06-04 05:37:36

标签: javascript html forms

我有一个脚本来修改表单输入中的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;


            }  

当我在我的“f”输入中放入一个url而我将“fb”留空时反之亦然,它正在工作。但是当我把url放在两个输入中时。它不起作用。

我的代码有什么问题吗?谢谢

2 个答案:

答案 0 :(得分:1)

您的代码的代码片段无法访问

 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。

执行此操作的一种方法如下(此代码将修复您的链接并提醒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);

答案 1 :(得分:1)

这是因为在检查“f”元素后你有一个return语句......

按如下方式更改您的代码:

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');
}