我正在为学校编写一个程序,他希望我们执行以下操作:如果在Age字段中输入任何非数字条目,则会出现一个警告框,其中包含两行消息:
您输入的年龄必须仅包含数字。 请重新输入。
然后:如果输入的年龄小于18,那么在包含消息的按钮下面会出现另一个段落
然后:对于18岁及以上的人,剧本必须根据申请人获得大学学位的情况计算并显示工资报价。如果申请人持有学位,那么工资报价将通过将申请人的年龄乘以$ 1000.00来确定。没有学位,乘数将只有600.00美元。当按下确定工资按钮时,脚本将显示包含计算工资报价的额外段落元素,如下面的示例插图所示。
我已经尝试了所有我能想到的东西,以确保在年龄字段中没有输入字母字符,但我似乎无法让它工作。请帮助!
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset= utf-8' />
<title>Form Based JavaScript</title>
<style type = "text/css">
h2 {text-align:left;}
body {background-color:lightblue;}
.input {font-family:"Courier New", Courier, monospace;}
</style>
<script type = "text/javascript">
<!--
function salary() `enter code here`
{
var age;
var degree;
if (age != [0-99]
{
document.writeln( "The age that you entered must contain only numerals. <br /> Please re-enter it.");
else if (age < 18)
document.writeln( " Sorry - you must be 18 or older for this job. <br /> Please reapply in [18 - age] years." );
else if (age >=18)
document.writeln( " You qualify! Salary offer [degree * ] dollars. See our staff for an application" );
}
}
// -->
</script>
<!-- project6.htm Tatiana Saavedra 04/17/2013 -->
</head>
<body>
<h2> Applicant Screening Page </h2>
<hr />
<form id = "myForm" action = "">
<p>Email:<input type = "email" id = "email"></p>
<p>Age:<input type = "number" maxlength="3" size="3" id = "age"></p>
<p><label>Check the box if you hold a college degree: <input type = "checkbox" id = "degree"></label></p>
<br />
<form action="">
<input type="button" value="Determine Salary" onclick="salary()"/>
</form>
</body>
</html>
答案 0 :(得分:0)
你有几个错误打开和关闭括号,在任何事情之前检查这个,你的javascript没有加载,因此没有做任何事情,正如已经告诉你的那样,你是在声明变量而不是为它们赋值。我还建议你把javascript放在页面底部
答案 1 :(得分:0)
试试这个:
function isInteger(n)
{
if (n.indexOf('.') != -1)
{
return false;//do not accept decimal numbers
}
return !isNaN(parseInt(n)) && isFinite(n);
}
parseInt将值解析为整数,如果该值包含字母字符,则返回NaN
isNaN检查结果是否为NaN
isFinite处理n以数字开头但包含caracters的情况。
您不仅使用isFinite
的原因是因为如果您尝试isFinite(' ')
,则返回true。
同样使用parseInt(age)
值进行比较,自从比较数字
答案 2 :(得分:0)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
这是一个不应该使用的旧版DOCTYPE(它的目的是帮助从10年前开始从HTML转换到XHTML,但这种情况从未发生过)。只需使用:
<?DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset= utf-8' />
请参阅?内容是HTML,作为HTML提供。 :-) [...]
如果这是XML,您只需将页面空白。近20年来,HTML注释分隔符并不是必需的,在符合HTML标准的浏览器中,头文件元素从不需要它们。不要使用它们。
function salary() `enter code here`
{
哎呀,你不能有字符串文字。把它放在函数体中。我喜欢将左大括号放在与函数关键字和名称相同的行上。我会假设弦不会出现在那里:
function salary() {
var age;
var degree;
if (age != [0-99]
缺少结束括号“)”。
{
document.writeln( "The age that you entered must contain only numerals. <br /> Please re-enter it.");
如果您在文档加载完成后调用document.writeln
,则会先调用document.open
,
清除文档中的所有内容。你可能想要做的是在文档中添加一个元素并将文本放在其中。或者将文本放在页面中已有的元素中。
else if (age < 18)
你应该在所有if块周围使用大括号,它使代码更容易阅读。对于非常简单的块和语句,有时省略它们很方便,但不是这里。小号
document.writeln( " Sorry - you must be 18 or older for this job. <br /> Please reapply in [18 - age] years." );
你似乎试图在字符串中进行算术,你不能这样做。因此,在写入元素时替换document.writeln
,并执行arithemtic,如:
"Please reapply in " + (18 - age) + " years."
else if (age >=18)
document.writeln( " You qualify! Salary offer [degree * ] dollars. See our staff for an application" );
}
}
同样在这里。
</script>
</head>
<body>
<h2> Applicant Screening Page </h2>
<hr>
<form id = "myForm" action = "">
<p>Email:<input type = "email" id = "email"></p>
<p>Age:<input type = "number" maxlength="3" size="3" id = "age"></p>
您可以在年龄输入后放置一个空的跨度来放入消息。
<p><label>Check the box if you hold a college degree: <input type = "checkbox" id = "degree"></label></p>
表单控件需要名称才能成功,它们通常不需要ID。
<p>Email:<input type="email" name="email"></p>
<p>Age:<input type ="number" maxlength="3" size="3" name="age"></p>
<p><label>Check the box if you hold a college degree: <input type="checkbox" name="degree"></label></p>
<br>
<form action="">
您不能在表单中放置表单,只需删除上面的标记(它没有结束标记)。
<input type="button" value="Determine Salary" onclick="salary()">
您需要提交按钮才能提交表单。
</form>
</body>
</html>
因此,如果您需要更多帮助,请继续更新代码并返回。