2013-03-04 124 views
2

我正在使用JavaScript来检查一个变量,看看它是否包含“http://”,如果它没有,要追加http。使用下面的代码,但我得到的是页面刷新/?myURL=被附加到浏览器地址栏。 删除if(getUrl.indexOF("http://" == -1)部件将使代码正常工作,但会缺少其包含的功能。 我不知道我要去哪里错了。我是否在if语句中错过了休息或返回?JavaScript没有按照我的要求去做!这是为什么?

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

而我的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> 
+3

你可以给这个不太通用的标题吗? – djechlin 2013-03-04 14:57:57

+1

if(getUrl.indexOf(“http://”== -1) 需要多一个支架! – Michiel 2013-03-04 14:58:33

回答

5

我相信你的问题是,你错过了梅开二度。将该行更改为:

if(getUrl.indexOf("http://"/*HERE*/)/*HERE*/ == -1) 

我已添加注释以指示哪些是缺少的括号。

+0

哦,我的天啊,我怎么错过了! – 2013-03-04 15:06:53

+0

我总是觉得这样的错误很多次。长时间写代码我会在检查时错过这样的错误,最好是短暂休息一下,喝一杯或零食,然后再回来。 – 2013-03-04 15:13:15