簡體   English   中英

如何將用戶輸入保存在另一個變量中

[英]How to save user input in another variable

我試圖在 javascript 中用星號屏蔽密碼,而不是使用type="password"因為它不是星號。 所以我將密碼保存在一個變量中,然后創建一個新變量,用星號(*)替換密碼。 之后,我嘗試將var y傳遞給另一個get()函數以獲取密碼條件。 問題是似乎var y沒有傳遞給get()函數。

 <!DOCTYPE html> <html> <body> <p>A function is triggered when the user releases a key in the input field. The function transforms the character to upper case.</p> Enter your name: <input type="text" id="pass" onkeyup="myFunction()"> <button onclick="get()">get password</button> <script> function myFunction() { var y = document.getElementById("pass"); get(y); var x = document.getElementById("pass"); x.value = x.value.replace(/./gi, '*'); } function get(y){ var pass = y; document.getElementById("p").innerHTML = pass; } </script> <p id="p"></p> </body> </html>

這個腳本應該可以工作,我只是將“pass”聲明為全局變量,這樣你就可以在里面存儲值並且在函數結束時不會丟失它

var pass ="";
function myFunction() {
  var y = document.getElementById("pass");
  get(y);
  var x = document.getElementById("pass");
  x.value = x.value.replace(/./gi, '*');
}

function get(y){    
  pass += y.value[y.value.length -1];
  document.getElementById("p").innerHTML = pass;
}

更新 1

pass += y.value[y.value.length -1];

等於pass = pass + y.value[y.value.length -1]; 所以如果你已經插入了“123”並且你想插入“4”,這一行將執行pass = "123" + y.value[y.value.length -1];
現在讓我們談談y.value[y.value.length -1]; y.value 是你里面的值,y.value.lenght 是你的字符串的長度(字符串是一個字符數組)所以如果你的標簽中有 "***4" y.value.length等於 4 .
在 javascript 和大多數其他語言中,您可以像處理數組一樣從字符串中選擇單個字符。 請參閱下面的示例

var text = "abcd";
text[0] // "a"
text[1] // "b"
text[2] // "c"
text[3]+text[0]// "da"

所以如果我們有y.value = "***4"y.value.length = 4你必須減去 1 因為數組從 0 開始,如果你做y.value[y.value.length -1]你會取最后一個字符。 所以

//pass = "123"
//i insert "4"
pass += y.value[y.value.length -1]; // pass = "123" + "4"
//pass = "1234"
         var y = document.getElementById("pass").value;

使用它來傳遞值,但是每當您單擊按鈕時,它都會替換為星號,因為您還使用了一個 onclick 函數,然后檢查單擊輸入值是否為星號,不要更新您的變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM