2012-02-04 10 views
0

配列に問題があります。私の最初のbuttonMsg()はプロンプトを正しく表示し、入力はテキストボックスにまっすぐに行きました。Javascript beginner:buttonMsgによって開始された複数の配列の問題

今、同じコードを2番目の配列にコピーするのに問題があります。
私は何もしないで試してみました。私はそれがbuttonMsgと関係があると思っています。

<html> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
     function buttonMsg(){ 
      varData = new Array(); 
      varData[0] = prompt("Please enter first name.","") 
      varData[1] = prompt("Please enter last name.","") 
      varData[2] = prompt("Please enter phone number.","") 
      varData[3] = prompt("Please enter address.","") 
      document.getElementsByName('inputbox')[0].value = varData[0] 
      document.getElementsByName('inputbox')[1].value = varData[1] 
      document.getElementsByName('inputbox')[2].value = varData[2] 
      document.getElementsByName('inputbox')[3].value = varData[3] 
     } 
     function buttonMsg(1){ 
      varDater = new Array(1); 
      varDater[0] = prompt("Please enter first name.","") 
      varDater[1] = prompt("Please enter last name.","") 
      varDater[2] = prompt("Please enter phone number.","") 
      varDater[3] = prompt("Please enter address.","") 
      document.getElementsByName('inputbox')[0].value = varDater[0] 
      document.getElementsByName('inputbox')[1].value = varDater[1] 
      document.getElementsByName('inputbox')[2].value = varDater[2] 
      document.getElementsByName('inputbox')[3].value = varDater[3] 
     } 
    </script> 
</head> 
<body> 
    <table border="1"> 
     <tr> 
      <td>0,0 CustomerID</td> 
      <td>1 FirstName</td> 
      <td>2 LastName</td> 
      <td>3 Phone</td> 
      <td>4 Address</td> 
     </tr> 
     <tr> 
      <td>1 Customer1 <input type="button" value="Input" onclick="buttonMsg()"/></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
     </tr> 
     <tr> 
      <td>2 Customer2 <input type="button" value="Input" onclick="buttonMsg(1)"/></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
      <td><input type="text" name="inputbox" value=""></td> 
     </tr> 
     <tr> 
      <td>3 Customer3</td> 
      <td></td> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td>4 Customer4</td> 
      <td></td> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
    </table> 
</body> 
</html> 

答えて

0

からのコードを変更:

function buttonMsg1(){ 
varDater = new Array(); 

function buttonMsg(1){ 
varDater = new Array(1); 

した後()buttonMsg1を呼び出します。後で問題を解決する必要があります。

しかし、私は配列の初期化と関数がjavascriptでどのように機能するかについてさらに調査することをお勧めします。関数内の()は、後にその関数で使用される引数(変数)を送信するために使用されます。このシナリオでは、それらは空白のままにする必要があります。

This siteは、機能を理解するのに役立つ出発点です。その第二の機能のすべての値について

document.getElementsByName('inputbox')[4] 

などに第二の機能で

document.getElementsByName('inputbox')[0] 

:さらにあなたのコードを見て

はあなたにも変更したいと思いますことを私に示しています。

しかし、これはスケーラビリティ(2人以上の顧客が必要な場合)には最適な方法ではありません。異なる要素名を引数として使用することをお勧めします。

+0

-1 W3Schoolsのにリンクする:あなたはjQueryの使用を許可している場合

は、次のことがもっと面白い解決策になるかもしれません。悪い教育は痛い! – Pierre

+0

これは、ほとんどの人やあなたが一般的に嫌いなものによって積極的に落胆されていますか?また、私はずっと良いと思われる別のサイトにリンクするように変更しました。 – Pluckerpluck

+0

ちょうどw3foolsへのあなたのリンクをたどったので、私は今あなたに同意したと思います。 – Pluckerpluck

0

入力の名前がす​​べて「入力ボックス」になっているので、実際には第1と第2の機能の間に出力の差はありません。 2つ目のボタンをクリックすると、最初のセクションの入力ボックスにデータが入力されます。その後、ボタンは、このような入力の名前を渡してきた

buttonMsg(inputname){ 
    var inputs = document.getElementsByName(inputname); 
    inputs[0].value = prompt("Please enter first name.",""); 
    inputs[1].value = prompt("Please enter last name.",""); 
    inputs[2].value = prompt("Please enter phone number.",""); 
    inputs[3].value = prompt("Please enter address.",""); 
} 

:それはこのような関数の中にセクションの入力の名前で渡すより多くの意味をなすかもしれない

<tr>  
    <td>1 Customer1 <input type="button" value="Input" onclick="buttonMsg('inputbox1')" /></td> 
    <td><INPUT TYPE="text" NAME="inputbox1" VALUE=""></td> 
    <td><INPUT TYPE="text" NAME="inputbox1" VALUE=""></td> 
    <td><INPUT TYPE="text" NAME="inputbox1" VALUE=""></td> 
    <td><INPUT TYPE="text" NAME="inputbox1" VALUE=""></td> 
</tr> 

とアウト変更します"inputbox1"を各項目の異なる名前に置き換えます。

0

コードは機能しません。 Chromeはエラーを報告し、スクリプトの実行を停止します。 2番目の関数の宣言に、無効な引数の変数名があります。

What characters are valid for JavaScript variable names?

また、すでに述べたように、重複した名前があります。

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
    <title>Example</title> 
    <script type="text/javascript"> 
     (function($){ 
      $(document).ready(function(){ 
       $('input.promptInput').bind('click', function() { 
        varData = new Array(); 
        varData[0] = prompt("Please enter first name.","") 
        varData[1] = prompt("Please enter last name.","") 
        varData[2] = prompt("Please enter phone number.","") 
        varData[3] = prompt("Please enter address.","") 
        $(this).parents('tr:first').find('input[type="text"]').each(function(i, input){ 
         $(input).val(varData[i]); 
        }); 
       }); 
      }); 
     })(jQuery); 
    </script> 
</head> 
<body> 
    <table border="1"> 
     <tr> 
      <td>0,0 CustomerID</td> 
      <td>1 FirstName</td> 
      <td>2 LastName</td> 
      <td>3 Phone</td> 
      <td>4 Address</td> 
     </tr> 
     <tr> 
      <td>1 Customer1 <input class="promptInput" type="button" value="Input"/></td> 
      <td><input type="text" name="customer_1_firstname" value=""></td> 
      <td><input type="text" name="customer_1_lastname" value=""></td> 
      <td><input type="text" name="customer_1_phone" value=""></td> 
      <td><input type="text" name="customer_1_address" value=""></td> 
     </tr> 
     <tr> 
      <td>1 Customer1 <input class="promptInput" type="button" value="Input"/></td> 
      <td><input type="text" name="customer_2_firstname" value=""></td> 
      <td><input type="text" name="customer_2_lastname" value=""></td> 
      <td><input type="text" name="customer_2_phone" value=""></td> 
      <td><input type="text" name="customer_2_address" value=""></td> 
     </tr> 
     <tr> 
      <td>3 Customer3</td> 
      <td></td> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td>4 Customer4</td> 
      <td></td> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
    </table> 
</body> 
</html> 
+0

-1 for w3schools。 [this](http://w3fools.com/)を参照してください。 – Pierre

+0

注目。それは迷惑メールサイトのように見えます。 – Plamen

関連する問題