JavaScript没有按照我的要求去做!这是为什么?

Pat*_*ane 2 html javascript

我正在使用JavaScript来检查变量以查看它是否包含"http://",如果它没有,则将http附加到它.使用下面的代码,但我得到的是刷新页面,/?myURL=并附加到浏览器地址栏.删除if(getUrl.indexOF("http://" == -1)部件将使代码正常工作,但将缺少它包含的功能.我无法弄清楚我哪里出错了.我是否错过了if else语句中的中断或返回?

function placeUrl()
    {
    var str1 = "http://"
    var getUrl;
    var newUrl;

    getUrl = document.getElementById('usersUrl').value;

    if(getUrl != null)
        {
        if(getUrl.indexOf("http://" == -1)
            {
            newUrl = str1.concat(getUrl);
            }
        else
            {
            newUrl = getUrl;
            }

        document.getElementById('iframe1').src = newUrl;
        }

    return false;
    }
Run Code Online (Sandbox Code Playgroud)

我的HTML:

<form onSubmit="return placeUrl()">
    <input id="usersUrl" type="text" name="myURL" value="Enter a URL..." onblur="if (this.value == '') {this.value = 'Enter a URL...';}" onfocus="if (this.value == 'Enter a URL...') {this.value = '';}">
    <input type="submit" value="Analyse">
</form>
Run Code Online (Sandbox Code Playgroud)

izo*_*ica 5

我相信你遇到的问题是你错过了大括号.将行更改为:

if(getUrl.indexOf("http://"/*HERE*/)/*HERE*/ == -1)
Run Code Online (Sandbox Code Playgroud)

我添加了注释以指出哪个是缺失的括号.