使用变量提示的循环和函数

时间:2015-02-08 21:00:49

标签: javascript function loops prompt

一直在努力让这个工作。我需要确保我的提示在询问单词时拒绝数字,并在询问数字时拒绝单词。我需要使用一个循环来确保所有提示都被应答或取消,并在任何时候取消它们进行通信。此外,我需要使用函数将结果写入表。

我已尝试使用typeofparseInt但未能成功拒绝if声明中的数字或字词。 typeof总是返回一个字符串,即使我输入数字或取消。

我不确定如何使用loop来检查所有提示是否已被回答或取消,我考虑使用typeof,但因为我无法获得它早点工作,我没有再试过。

另外,我认为typeof可以告诉用户他们是否在任何时候取消,但它总是返回一个字符串而不是未定义。

当我尝试在document.write内有一堆function表信息时,我无法打印任何内容。我只使用.getElementById.innerHTML成功将变量写入表格。

    <!DOCTYPE html>
<html lang="en">

<head> 
<title></title>  
<meta charset="utf-8">

<style>
table, th, td {border: 1px solid black; text-align:center; padding: 5px;}
</style>

<script>
var firstName=prompt("What is your first name?","");
var lastName=prompt ("What is your last name?","Doe");
var age=prompt ("What is your age?","21")
var phoneNumber=prompt ("What is your phone number?","123 456 7890")
var email=prompt ("What is your email?","username@domain.com")
</script>


</head>  
<body>

<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
<th>Phone</th>
<th>Email</th>
</tr>
<tr>
<td id="tdFirstName"></td>
<td id="tdLastName"></td>
<td id="tdAge"></td>
<td id="tdPhoneNumber"></td>
<td id="tdEmail"></td>
</tr>
</table>

<script>
document.getElementById("tdFirstName").innerHTML = firstName;
document.getElementById("tdLastName").innerHTML = lastName;
document.getElementById("tdAge").innerHTML = age;
document.getElementById("tdPhoneNumber").innerHTML = phoneNumber;
document.getElementById("tdEmail").innerHTML =email;
</script>

</body>  
</html>  

1 个答案:

答案 0 :(得分:0)

var firstName;
do
{
    firstName=prompt("What is your first name?","");
}
while(!Number.isNaN(parseInt(firstName)));

var age;
do
{
    age=prompt("What is your age?","");
}
while(Number.isNaN(parseInt(age)));

或者这个:

var questions = [
    ["What is your name?", "string"],
    ["What is your age?", "number"]
];
for(var i = 0, j = questions.length; i < j; i++)
{
    var value, _break = false;
    for(;;)
    {
        value = prompt(questions[i][0]);
        if(value === null)
        {
            _break = true;
            break;
        }
        if(questions[i][1] == "number")
        {
            if(!Number.isNaN(parseInt(value)))
            {
                break;
            }
        }
        else if(questions[i][1] == "string")
        {
            if(Number.isNaN(parseInt(value)))
            {
                break;
            }
        }
    }
    if(_break)
    {
        break;
    }
}