2014-04-09 65 views
-1

我試圖使用JavaScript生成HTML鏈接,鏈接生成器JavaScript

這是代碼。

<script type="text/javascript"> 
    function lab() {  
      var myTextField = document.getElementById('redir'); 
      var texto = myTextField.value; 
      url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
      document.getElementById("red").innerHTML = url; 
</script>  

<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Web: <input type="text" id ="redir" name="redir"><br> 
<input type="button" onClick="lab()" value="Generate code" > 

<b id="red" >Link</b> 

問題是...當我點擊生成的鏈接不起作用好,只是帶我到本地主機/我想出去....

+0

謝謝你,我已經updat! (0; – bjesua

+3

步執行代碼,並找出'myTextField.value'是如果該值爲空,你的鏈接就會有問題 – Bucket

回答

1

1)使用的onsubmit並返回false
2)測試字段不爲空 3)只使用類型= URL如果你堅持的再導向必須是這樣的http://aaa.bbb.ccc

如果你想允許用戶鍵入google.com你需要不使用type="url"但你必須測試,如果有是http://在前面,如果沒有,添加它,否則會基於該相對URL與窗體頁

Live Demo

<script> 
window.onload=function() { 
    document.getElementById("test").onsubmit=function() { 
    var texto = this.redir.value; 
    if (texto) { 
     // next line only needed for non-html5 aware browsers or type="text" 
     if (texto.indexOf('http://')!=0) texto = 'http://'+texto; 
     document.getElementById("red").innerHTML = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
    } 
    return false; 
    } 
} 
</script>  

<form id="test"> 
Web: <input type="url" id="redir" name="redir"/><br /> 
<input type="submit" value="Generate code"/> 
</form> 
<b id="red" >Link</b> 
+0

是啊謝謝!其實這個代碼工作完美,但是,問題是鏈接不能帶我出去,讓我看到像http:// localhost /test/linkeout/crypt/goog.com本地主機上!...所以我需要的是這個環節採取我出去的網站!謝謝! – bjesua

+0

看到我更新... – mplungjan

+0

太感謝你了!..我沒想到!天才!謝謝! – bjesua

0

變化<input type="text" id ="redir" name="redir"><input type="url" id ="redir" name="redir">使瀏覽器確保只有URL被提交。
然後修改:

function lab() {  
     var myTextField = document.getElementById('redir'); 
     var texto = myTextField.value; 
     url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
     document.getElementById("red").innerHTML = url; 
    } 


到:

function lab() {  
    var myTextField = document.getElementById('redir'); 
    var texto = myTextField.value; 
    if(texto != '') 
    { 
     url = "<a target='_blank' href='" + texto + "'>Click</a> Para continuar."; 
     document.getElementById("red").innerHTML = url; 
    } else { 
     alert(' please enter a valid url'); 
    } 
} 
+0

類型= URL不會對自己做任何事情,那麼只有在HTML5知道。瀏覽器 – mplungjan

+0

是啊謝謝!但是,問題是鏈接不能帶我出來,在本地主機上顯示出像http://localhost/test/linkeout/crypt/goog.com這樣的東西!需要的是這個鏈接把我帶到網站!謝謝! – bjesua