2017-05-17 68 views
0

我正在嘗試使這個Javascript,以便當我的網頁打開時,它會要求輸入密碼和你的名字,如果你不輸入你的名字,它會使一個循環直到您完成,並輸入所輸入姓名的第一個字母。但它不會把首字母大寫。請幫忙。謝謝。JavaScript .substr()和.slice()

function startFunction() { 
    var Password = prompt("What is the password?"); 
    getPassword(Password); 
}; 

function getPassword(Password) { 
    if (Password == "123") { 
    alert("Correct password. Access granted."); 
    var Name = prompt("What is your name?"); 
    getName(Name); 
    } 
    else { 
    alert("Incorrect password. Access denied."); 
    window.close(); 
    } 
}; 

function getName(Name) { 
    if (Name.length === 0) { 
    while (Name.length === 0) { 
    alert("Please enter your name."); 
    var Name = prompt("What is your name?"); 
    if (Name.length > 0) { 
     alert("Nice to meet you, " + Name + "."); 
     } 
    } 
    } 
    else { 
    try { 
     var newName2 = Name.slice(1, Number(name.length)); 
     var newName1 = Name.slice(0, 1); 
     var newName = newName1.toUpperCase() + newName2; 
     alert("Nice to meet you, " + newName + "."); 
    } 
    catch (ValueError) { 
     alert("Hello") 
    } 
    } 
}; 

startFunction(); 
+0

你的代碼出現,當我進入它能夠利用我的名字的第一個字母。你確定你的代碼不能按預期工作嗎?另外,請記住遵循[**標準JavaScript命名約定**](https://www.w3schools.com/js/js_conventions.asp)。 –

+0

「if」塊中出現的「很高興見到你......」提醒沒有任何代碼可以將第一個字母大寫,只有「else」塊中的提醒會有效。順便說一句,你不應該需要這個代碼的try/catch。 – nnnnnn

+0

哦。謝謝。我試圖讓它把第一個字母大寫,並將其添加到名稱的其餘部分。就像添加「克里斯」一樣,它會提醒「克里斯」。 – Neuranium

回答

0

while循環不包括大寫的名字的第一個字母的邏輯,因此,如果您在輸入姓名的第一次嘗試是空的,它的問候將不會被資本化。

我簡化getName()了一下,移動的資本,以自身的功能:

function getName(Name) { 
    while (Name.length === 0) { 
    alert("Please enter your name."); 
    Name = prompt("What is your name?"); 
    } 

    try { 
    alert("Nice to meet you, " + capitalizeName(Name) + "."); 
    } 
    catch (ValueError) { 
    alert("Hello") 
    } 
}; 

function capitalizeName(Name) { 
    var newName2 = Name.slice(1, Number(name.length)); 
    var newName1 = Name.slice(0, 1); 
    var newName = newName1.toUpperCase() + newName2; 
    return newName; 
} 

和它在行動小提琴:https://jsfiddle.net/21mdLfrb/

+0

謝謝,它的效果非常好! – Neuranium

0

這裏ü去

HTML:

<input type="text" id="name" ></input> 
<input type="password" id="pass" ></input> 
<button onclick="process()" > 
    Submit 
</button> 

Javascript:

function process(){ 
    var getName= document.getElementById("name").value; 
    var getPass= document.getElementById("pass").value; 

    if(getName && getPass){ 
     getName = getName.charAt(0).toUpperCase() + getName.slice(1); 
     alert("Nice to meet you, " + getName + "."); 

    } 
} 

https://jsfiddle.net/emilvr/hcb81vng/