gpt4 book ai didi

Javascript - 一个函数中的多个任务不起作用

转载 作者:行者123 更新时间:2023-12-02 18:40:11 25 4
gpt4 key购买 nike

我有一个脚本可以从表单输入中 trim 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”输入中输入一个网址,同时将“fb”留空时,反之亦然,它就可以工作。但是当我将 url 放入两个输入中时。这不起作用。

我的代码有问题吗?谢谢

最佳答案

这是因为在检查“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');
}

关于Javascript - 一个函数中的多个任务不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16910504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com