2017-05-17 33 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/