我有一个脚本来修改表单输入中的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放在两个输入中时。它不起作用。
我的代码有什么问题吗?谢谢
答案 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');
}