2017-10-21 158 views
0

我無法將client.html中表單的輸入值打印到server.html中的表中。它必須用Javascript編寫,並使用GET方法進行編寫。Javascript - 通過獲取方式獲得值通過獲取方法

client.html:

<form action="server.html" method="get"> 
<p> 
Name: 
<input type="text" id="txtname" name="txtname" />  
</p> 
</form> 

server.html:

<head> 
<script type="text/javascript"> 

    function getUrlVars() { 
     var vars = {}; 
     var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
      function (m, key, value) { 
       vars[key] = value; 
      }); 
     return vars; 
    } 
var name= unescape(getUrlVars()[document.getElementById("txtname")]); 
document.getElementById("idname").innerHTML=name; 
</script> 
</head> 
<body> 
<table> 
<tr> 
    <td>Name:</td> 
    <td id="idname"></td> 
</tr> 
</table> 
<body> 
+1

我認爲這個問題可以幫助你(HTTPS [如何獲得來自GET參數的值?]:/ /stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-parameters) – 3Dos

+1

'getUrlVars()[document.getElementById(「txtname」)]'將始終訪問'vars [「 [object HTMLInputElement]「]'。你的意思是'getUrlVars()[document.getElementById(「txtname」).value]'? – Xufox

回答

0

有幾件事情在這裏:

你想的#idnameinnerHTML設置爲hoten.value,這未定義。

getUrlVars()[docuemnt.getElementById("txtname")]也不驗證。你可以簡單地使用getUrlVars().txtname來獲取查詢參數。

您還試圖在DOM被處理之前設置該值 - JS無法設置該元素的值,因爲它尚未放置在頁面上。

修復錯誤和移動JS body標籤結束脩復此:

<head> 
</head> 
<body> 
<table> 
    <tr> 
    <td>Name:</td> 
    <td id="idname"></td> 
    </tr> 
</table> 
<script type="text/javascript"> 
    function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
     function (m, key, value) { 
     vars[key] = value; 
     }); 
    return vars; 
    } 

    var name= unescape(getUrlVars().txtname); 
    document.getElementById("idname").innerHTML = name; 
</script> 
</body> 
+0

@Xufox從解釋中刪除了該行,我改變了修復方法,並忘記更改解釋以反映 –