其他如果javascript
我有一个简单的功能,应该提示用户输入公司名称,然后是一个确认消息框,询问用户“您想今天订购一个网页设计软件包吗?”问题在于我的'if'和'else if'语句。当用户点击'OK'时,'if'语句应该显示一个警告框'Thank you for your order';和'else if'语句,当用户点击'取消'时应该显示一个警告框“我们感谢你的时间”。该函数由onClick脚本调用。出现提示和确认框,但我不明白为什么我的if和else if框不出现。我错过了什么?任何帮助表示赞赏。谢谢。其他如果javascript
<SCRIPT language = "Javascript">
function submitOrder() {
var companyName = prompt("Please enter company name.", "")
var willOrderPackage = confirm("Would you like to order a Web Design package today?")
if (willOrderPackage == "true") {
alert("Thank you for your order.")
}else if{
alert("We appreciate your time.")
}
</SCRIPT>
您else if
有没有条件,使用else
如说
if (willOrderPackage == "true") {
alert("Thank you for your order.")
是错误的:willOrderPackage是一个布尔值,所以可以
(willOrderPackage == true)
甚至更好
(willOrderPackage)
非常感谢! –
'willOrderPackage'也是一个布尔值,所以它不应该与'“true”相比较。 – jfriend00
'if attack =“true”launchNukes()' –
也最好是使用:的
if (willOrderPackage) {
代替:
if (willOrderPackage == "true") {
@pst,但这也是一个改变。 – jfriend00
@ jfriend00我完全同意。我没有阅读这篇文章作为“评论”帖子。 – 2012-09-05 23:29:39
更改为:
if (willOrderPackage) {
alert("Thank you for your order.")
}else{
alert("We appreciate your time.")
}
+1 - 你有两个建议修复。 – jfriend00
这是它是如何正确地完成:
<script type="text/javascript">
function submitOrder() {
var companyName = prompt("Please enter company name.", "");
var willOrderPackage = confirm("Would you like to order a Web Design package today?");
if (willOrderPackage) {
alert("Thank you for your order.");
}else{
alert("We appreciate your time.");
}
}
</script>
件
事情我所做的:
- 现代化编码风格
- 切换为类型属性,而不是语言上的每个结束线
- 加入分号
- 除去冗余
if
关键字 - 加入右大括号最初失踪
- 删除与字符串比较true,与布尔值比较不需要此
实际上有两种不同的if..else结构。首先是一个简单的if-else:
if (condition) {
// Do stuff if condition is true
} else {
// Do stuff if condition is not true
}
下是的if-else-IF:
if (condition) {
// Do stuff if condition is true
} else if (differentCondition) {
// Do stuff if differentCondition is true
} else {
// Do stuff if neither condition nor differentCondition is true
}
您还可以使用别的,如果多次,只要你喜欢,如:
if (condition) {
// Do stuff
} else if (condition2) {
// etc
} else if (condition3) {
// etc
} else if (condition4) {
// etc
} else {
// etc
}
if..else的每个部分都是可选的,除了最初的if块以外。所以,如果你不想做任何事情,如果condition
是不正确的,你可以完全省略else块:
if (condition) {
// do stuff if condition is true
}
HTH
超越你的问题了一会儿,表达的被评估你的陈述条件有点脆弱。
willOrderPackage永远是true
或false
,但要注意的是true
和"true"
或false
和"false"
不同是很重要的。第一个是布尔值,第二个是字符串。
所以,你的if语句应该问:
if (willOrderPackage == true) {
甚至比这更好的,当你在一个if语句计算表达式,有一个在它的一端是不可见的一个隐含== true
。例如:
if (willOrderPackage == true) {
会被解释为:
if ((willOrderPackage == true) == true)
这样做的好处是,你实际上可以从你的代码省略了整个== true
位,所以你可以这样写:
if (willOrderPackage) {
而实际上你仍然在说“if willOrderPackage is true”
H这有助于为你清理一些事情!
'if(thisPartIsAlwaysNeeded)..';但也许只是使用'else' *而不使用“if”? – 2012-09-05 23:27:42
是你没有使用分号? –
不想粗鲁,但你真的应该学习如何编写代码。首先,这个javascript看起来像是在90年代写的(大写标签名称,大写的语言名称,没有结尾的分号等)。其次,将布尔值与字符串'true'进行比较清楚地表明缺乏对基本原理的理解。事实上,你放弃了第二个if语句的条件,这更加强制执行。 – Christian