4

ユーザーに会社名の入力を求める単純な関数があり、その後に「今日 Web デザイン パッケージを注文しますか?」という確認メッセージ ボックスが表示されます。問題は、'if' ステートメントと 'else if' ステートメントにあります。「if」ステートメントは、ユーザーが「OK」をクリックしたときに「ご注文ありがとうございます」という警告ボックスを表示する必要があります。ユーザーが「キャンセル」をクリックしたときに「お時間をいただきありがとうございます」という警告ボックスを表示する「else if」ステートメント。関数は onClick スクリプトによって呼び出されます。プロンプト ボックスと確認ボックスは表示されますが、if および else if ボックスが表示されない理由がわかりません。私は何が欠けていますか?どんな助けでも大歓迎です。ありがとう。

<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>
4

5 に答える 5

14

実際には 2 つの異なる if..else 構造があります。1 つ目は単純な 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
}

また、else-if を好きなだけ何度でも使用できます。

if ( condition ) {
   // Do stuff
} else if ( condition2 ) {
   // etc
} else if ( condition3 ) {
   // etc
} else if ( condition4 ) {
   // etc
} else {
   // etc
}

また、最初の if ブロックを除いて、if..else のすべての部分はオプションです。したがって、if が true でない場合は何もしたくない場合conditionは、else ブロックを完全に省略できます。

if ( condition ) {
   // do stuff if condition is true
}

HTH

あなたの質問を少し超えて、if ステートメントの条件で評価される式は少し不安定です。

willOrderPackage は常にtrueorになりますが、 andまたはとは異なるfalseことに注意することが重要です。1 つ目はブール値、2 つ目は文字列です。true"true"false"false"

したがって、if ステートメントは次のように要求する必要があります。

if ( willOrderPackage == true ) {

それよりもさらに良いことに、if ステートメントで式を評価すると、== trueその末尾に非表示の暗黙があります。例えば:

if ( willOrderPackage == true ) {

次のように解釈されます。

if ( (willOrderPackage == true) == true )

== trueこれの利点は、コードから実際にビット全体を省略できるため、次のように書くことができることです。

if ( willOrderPackage ) {

そして事実上、あなたはまだ「willOrderPackageがtrueの場合」と言っています

いくつかのことを解決するのに役立つことを願っています!

于 2012-09-05T23:39:03.570 に答える
7

あなたelse ifには条件がありません、使用してくださいelse

述べたように

if (willOrderPackage == "true") {
alert("Thank you for your order.")

間違っています:willOrderPackageはブール値であるため、

(willOrderPackage == true)

またはさらに良い

(willOrderPackage)
于 2012-09-05T23:26:19.243 に答える
2

また、使用することをお勧めします:

if (willOrderPackage) {

それ以外の :

if (willOrderPackage == "true") {
于 2012-09-05T23:26:53.570 に答える
1

への変更:

if (willOrderPackage) {
   alert("Thank you for your order.")

}else{
   alert("We appreciate your time.")
}
于 2012-09-05T23:28:09.860 に答える
0

これが適切に行われる方法です:

<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>

私がしたこと:

  • 近代化されたコーディング スタイル
  • language の代わりに type 属性に切り替えました
  • 各終了行にセミコロンを追加
  • 冗長なifキーワードを削除
  • 元々欠けていた閉じ中括弧を追加しました
  • 文字列 true との比較を削除しました。ブール値との比較にはこれは必要ありません
于 2012-09-05T23:34:07.627 に答える