【问题标题】:Loops and functions working with variable prompts使用变量提示的循环和函数
【发布时间】:2015-02-08 21:00:49
【问题描述】:

一直在努力让它发挥作用。我需要确保我的提示在询问单词时拒绝数字,并在询问数字时拒绝单词。我需要使用循环来确保所有提示都得到回答或取消,并在它们在任何时候取消时进行沟通。我还需要使用函数将结果写入表。

我尝试过使用typeofparseInt,但没有成功让它拒绝if 语句中的数字或单词。 typeof 总是返回一个字符串,即使我输入一个数字或取消。

我不知道如何使用loop 来检查所有提示是否已被回答或取消,我考虑过使用typeof,但由于我无法更早地使用它,所以我没有又试了一次。

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

当我尝试在function 中包含一堆document.write 和表格信息时,我无法让它打印任何东西。我只成功地使用了.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>  

【问题讨论】:

    标签: javascript function loops prompt


    【解决方案1】:
    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;
        }
    }
    

    【讨论】:

    • 没用,当我输入数字时它仍然接受它们,并且不会让剩余的提示启动
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多