2011-08-08 11 views
2

同じ番号パッドを使用して、JavaScriptを使用して2つの別々のテキストスタイルのフォーム値を入力するアプリケーションを作成しています。div ID値をグローバルに格納する方法

関数内での使用のためのdiv IDの収集方法(hide値の切り替えなど)がわかりましたが、この値を何らかの形で保存して、どのフィールドに数値を入力するかを知る必要があります

グローバル変数を使用しようとしましたが、IDが文字列値として記録されていないように見えません。

私は表示/非表示属性を切り替えない使用していたコードが、私はストレージとして使用してい変数がある、それは私のスクリプトは次のようになります[object HTMLDivElement]

(クマを読み何をポップする警告ボックスを使用している場合私はjavascriptにnoobです)を念頭に置いてください。

+2

console.logの使い方を知っていますか? –

+0

聞いたことがありません。それは記憶領域ですか? – Andy

+2

私は言ったように@ジョセフ....私はこれにノブです:P – Andy

答えて

2
<script type="text/javascript"> 
    <!-- 
    keypad.display="none"; 
    //Classes for the numberpad on the text fields. 

     var padName = ""; //Storage for the name of the current pad. 

     function numPad(field) { 
      var pad = document.getElementById("keypad"); //manipulating pad. 
      var ref = document.getElementById(field);//gather the field info. 
      if (pad.style.display == "block") { //Open or close? 
       pad.style.display = "none"; //Blank out. 
       padName = ""; 
      } 
      else { 
       pad.style.display = "block";//Set to refer to correct field. 
       padname = ref; 
       alert (ref); 
      } 
     } 

     function click(id) { 
      var key = document.getElementById(id); 
      var total = padName.value(); 
      if (key == "Backspace") total.slice(0, -1); 
      else if (key == "Enter") numPad("blanck"); 
      else total += key; 
      padName.value = total; 
     } 
    --> 
</script> 
// to get the ID by direct property access of the DOM element 
var ref = document.getElementById(field).id; 

、次いでref格納ID値。

私がお勧めします:

// create an object to store app-wide settings 
// access properties like this: appSettings.propertyName 
var appSettings = { padName: "" }; 

... 

var ref = document.getElementById(field).id; 
appSettings.padName = ref; 

をグローバルな名前空間を汚染を避けるために。

パッドの値を設定/取得するには、あなたがこれを行う必要がありますが:

// to get 
var total = document.getElementById(appSettings.padName).value; 

// to set 
document.getElementById(appSettings.padName).value = "something"; 

あなたはDOMオブジェクトとプロパティ上に読んでください。

+1

'total'を割り当てるときに' document.getElementById(appSettings.padName).value = ... 'も必要です。 – sje397

+0

@ sje397 - 完了しました。ありがとう。 – karim79

1

まず、refにDOM要素への参照が割り当てられます。この参照はpadNameに割り当てられます。したがって、[object HTMLDivElement]アラートに割り当てられます。あなただけpadNameに保存されたIDを使用する場合は

padName

padName = field; 

また、あなたが混合している例を使用します。 padNamepadnameの両方があります。

また、コメントに記載されているように、コンソールをデバッグに使用します。アラートよりもはるかに包括的です。

click機能で何が起こっているのかわかりません。 padNameは、value()メソッドとvalueプロパティから来るものが何らかのオブジェクトであると予想されているようです(FYIのみフォーム要素はvalueのプロパティを持っています)。

+0

ありがとう。私はケースミキシングに気付かなかった。 valueプロパティはフォームテキストフィールドから来ているので、このコマンドはそのフィールドにある文字列を取得すると仮定しています。 – Andy

関連する問題