一. 錯誤的示范
如下代碼所示,如果需要用javascript獲取id為username1, password1的輸入框的值,將其寫入id為username2, password2的輸入框,那么紅線區域的代碼是不可取的
這樣看到的結果是,alert依次彈出username1, password1的輸入框的值,事實上並沒有成功的賦值
這是為什么?因為var username2 = document.getElementById("username2").value; 這行代碼中username2的值是一個空字符串,舉個例子,如果username1 = "123", 那么username2 = username1;就等價於""="123",把一個字符串賦值給空字符串,沒有意義。同理,password2 = password1;也是一個道理
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html表單作業</title> <script type="text/javascript"> function myFunc(){ var username1 = document.getElementById("username1").value; var password1 = document.getElementById("password1").value; alert("您的賬號是: " + username1); alert("您的密碼是: " + password1); var username2 = document.getElementById("username2").value; var password2 = document.getElementById("password2").value; username2 = username1; password2 = password1; } </script> </head> <body> <form> 用戶名:<input type="text" id="username1" /> <br /> 密碼:<input type="password" id="password1" /> <br /> 性別:<input type="radio" name="sex" value="male" />男 <input type="radio" name="sex" value="female" />女 <br /> 頭像:<input type="file" name="file" /> <br /> 住址:<select id="city" name="city"> <option>選擇</option> <option>廣東</option> <option>湖南</option> <option>江西</option> </select>省 <select> <option>選擇</option> <option>深圳</option> <option>長沙</option> <option>南昌</option> </select>市 <br /> <br /> 愛好:<input type="checkbox" value="1" />籃球 <input type="checkbox" value="2" />足球 <input type="checkbox" value="3" />看書 <br /> <br /> 備注信息:<textarea rows="3" cols="15">這是我的第一個網頁</textarea> <br /> <br /> <br /> <br /> <br /> 用戶名:<input type="text" id="username2" /> <br /> 密碼:<input type="password" id="password2" /> <br /> <input type="button" value="登錄" onclick="myFunc()" /> <input type="reset" /> </form> </body> </html>
這段代碼的結果是:我們可以看到,我們在上方的用戶名框輸入123,密碼框輸入567,alert依次彈出123,567,然而,獲得的值並沒有寫入到下方的用戶名和密碼框中
二. 如何解決
只需改動上面紅色的四行代碼。如下所示,username2.value有兩個含義,1. 它的值是空字符串;2. 它表示元素對象的屬性,username2.value = username1; 就是把id為username1的輸入框的值賦值給id為username2的對象的屬性
var username2 = document.getElementById("username2");
var password2 = document.getElementById("password2");
username2.value = username1;
password2.value = password1;
為了讓代碼更清晰,可以這樣改:
function myFunc(){
var username1 = document.getElementById("username1"); var password1 = document.getElementById("password1"); alert("您的賬號是: " + username1.value); alert("您的密碼是: " + password1.value); var username2 = document.getElementById("username2"); var password2 = document.getElementById("password2"); username2.value = username1.value; password2.value = password1.value;
}
驗證結果: