0

私は学校向けのプログラムを書いていますが、彼は私たちに次のことをしてほしいと言っています: 年齢フィールドに数値以外の入力が行われた場合、警告ボックスに 2 行のメッセージが表示されます:

入力した年齢には数字のみを含める必要があります。再入力してください。

次に : 入力した年齢が 18 歳未満の場合、メッセージを含むボタンの下に追加の段落が表示されます。

And Then : 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>
4

3 に答える 3

0

ブラケットの開閉にいくつかのエラーがあります。何よりも前にこれを確認してください。JavaScriptがロードされていないため、何もしていません。すでに述べたように、変数を宣言していますが、値を割り当てていません。また、ページの下部に JavaScript を配置することをお勧めします。

于 2013-04-23T23:32:11.650 に答える
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 の場合は、ページを空白にしただけです。HTML コメント区切り文字は 20 年近く必要ではありませんでした。HTML 標準に準拠したブラウザーの head 内のスクリプト要素には必要ありませんでした。それらを使用しないでください。

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 ブロックを中かっこで囲むと、コードが読みやすくなります。非常に単純なブロックやステートメントでは省略した方が便利な場合もありますが、ここでは省略します。S

       document.writeln( " Sorry - you must be 18 or older for this job. <br /> Please reapply in [18 - age] years." );

文字列で算術演算をしようとしているようですが、それはできません。したがってdocument.writeln、要素への書き込みに置き換えて、次のように算術演算を行います。

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

コードを更新してみて、さらにサポートが必要な場合は戻ってきてください。

于 2013-04-24T01:23:13.867 に答える
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 が数字で始まるが文字を含む場合を処理します。

使用しない理由isFiniteは、試してみるisFinite(' ')と true が返されるためです。

また、parseInt(age)値を比較してください。数値を比較するので、より良い結果が得られます

于 2013-04-23T23:39:34.627 に答える