1

訪問者がフォームに入力フィールドを動的に追加できるようにする単純なJavaScript関数があります。場合によっては、ページ上でこの関数を数回呼び出す必要があり、1つの関数を作成し、それに必要なパラメーターを渡すだけで、物事を単純化しようとしています。

私のこだわりは、必要に応じて入力を追加/削除できるように、作成する入力のカテゴリごとにカウンターを用意する必要があるということです。これが私がこれまでに得たものです:

var assigneeCounter = 1;
var uploadCounter = 1;


function addInput(fieldlabel, inputclasses, inputCounterID, inputCounter){
  alert(inputCounter);
}

この関数を呼び出すHTMLは次のとおりです。

<a href="javascript:addInput('Assignee','required-text', 'assignees', 'assigneeCounter');">Add Another Assignee</a>
<a href="javascript:addInput('File Uploads','', 'uploads', 'uploadCounter');">Add Another File Upload</a>

私の目標は、関数呼び出しでそれに関連する特定の変数を検索することです(たとえば、Assignees入力の場合はassigneeCounter、Uploadsの場合はuploadCounterなど)。ただし、その変数にアラートを送信すると、「1」ではなく「assigneeCounter」と書き込まれます。

私はここで変数スコープについての基本的な何かが欠けていると確信しています。私はJavaScriptの専門家ではないので、そうしている人に聞いてみようと思いました。

前もって感謝します!

4

2 に答える 2

1

次のようにアクセスできます。

alert(window[inputCounter]);
于 2012-09-19T22:12:09.443 に答える
1

はい。これらの変数がグローバルスコープにある場合は、windowオブジェクトを介してそれらにアクセスできます。

window[inputCounter];

これがどのように機能するかの詳細については、JavaScriptで動的変数名を使用するを参照してください。

于 2012-09-19T22:12:37.187 に答える