2011-07-06 96 views
0

爲什麼是它在包含文本框提交按鈕一種形式,我可以提醒什麼在用戶的文本框中輸入了,但不能打印這一頁?我究竟做錯了什麼?JavaScript表單輸入檢索

下面的代碼

<form name="Serb" action="" method="get"> 
<input name="Name" type="text" size="15" maxlength="20" /> 
<input name="Join" type="submit" value="Join" onClick="serb(this.form)" /> 

<script type="text/javascript"> 
    function serb(form){ 
    var x = document.Serb.Name.value; 
    alert(x); \\this alerts 
    document.write(x); \\this should print on page 
    } 
</script> 

出於某種原因,警報工作正常,準確地顯示在用戶按下「加入」後鍵入用戶名框的內容。但是,它不會在頁面上打印信息。這是爲什麼?

+0

你檢查錯誤控制檯啓動? – Balanivash

+0

尼瓦斯是正確的,檢查你的評論,它開始於\\而不是/ /另外,爲表格添加結束標籤'' – dpp

回答

1

在頁面加載/解析後使用document.write()並不是一個好主意。那時,它會用新內容覆蓋頁面HTML。 document.write()通常用於頁面加載時在頁面加載時將特定點處的內容插入到頁面中。

如果要將值放入頁面上的某個項目中,則需要使用適當的DOM方法,將值放入輸入字段,將innerHTML設置爲div等等......

你可以在這裏閱讀關於document.write:https://developer.mozilla.org/en/document.write

下面是一個從字段中獲取值並將其放入頁面中另一個對象而不使用document.write()的示例:http://jsfiddle.net/jfriend00/dU8Sr/

HTML:

<form name="Serb" action="" method="get"> 
<input name="Name" type="text" size="15" maxlength="20" /> 
<input name="Join" type="button" value="Join" onClick="serb(this.form)" /> 
</form> 
<br> 
<br>Output: <span id="output"></span> 

的Javascript:

function serb(form) { 
    var x = document.Serb.Name.value; 
    document.getElementById("output").innerHTML = x; 
} 
+0

當文檔關閉時調用* document.write *不會「添加到結尾這一頁」。它將首先調用* document.open()*,它完全清除** all **內容的文檔,因此它將替換內容,而不是附加到它。 – RobG

+0

好的。我糾正了我的答案。 – jfriend00

2

確實工作。文本框中的值將打印在頁面上。

但是:

  1. \\並不意味着在Javascript什麼。評論以//開頭。這很可能是您沒有看到正在寫入的值的原因。

  2. document.write用其參數替換HTML頁面中的所有內容。 (如果在文檔加載後調用它)。所以除非你試圖學習Javascript,這不是一個好主意。

    事實上,即使在學習Javascript時使用它也不是一個好主意,除非您正試圖學習如何使用document.write。 有靈活的(更好)的方式來處理頁面的內容,從不起眼的getElementByIdcomplex DOM manipulation