2017-12-05 16 views
-1

私はユーザーが過去の雇用者を追加できるフォームを持っています。ユーザーはボタンを押して、新しい雇用者を動的に追加することができます。動的フォームフィールドへの追加

ここに私がする必要があることがあります。ユーザーが2人の雇用主を追加したとしましょう。最初に各仕事に費やした年数を追加する必要があります。

EX:雇用者1 - 2005年 - 2007年= 2年。 雇用主2 - 2010 - 2015 = 5年。

ここで、私はEX:7年の両方を合計する必要があります。

フォームフィールドは、次のように名前が付けられます。

ID1_empAppWorkHistoryStartDateYear ID1_empAppWorkHistoryEndDateYear

ID2_empAppWorkHistoryStartDateYear はJavaScriptで動的に入力名の上にIループやると送られた年の合計数を計算する方法ID2_empAppWorkHistoryEndDateYear

すべてのジョブで(最大5つまであります)

+0

ようこそStackoverflowへ[How to Ask](https://stackoverflow.com/help/how-to-ask)をお読みください。 [MCVEの作成方法](https://stackoverflow.com/help/mcve)に特に注意してください。良い質問を投稿するために、より多くの努力が必要です。読みやすく、理解しやすく、トピック上にあるものです(https://stackoverflow.com/help/on-topic) - その可能性は高いです関連する人々を惹きつけ、あなたはもっと早く助けを得るでしょう。がんばろう! – alfasin

答えて

0

y入力時に入力された値を変数に格納するだけです。 HTMLフォームイベント?によってトリガーされる関数が必要な場合があります。 https://www.w3schools.com/tags/ref_eventattributes.asp

これまでにない場合は、差を計算して合計年数を保存する場所に追加することができます:)。第二の入力のために

IDX_empAppWorkHistoryStartDateYear 

:最初の入力のために

Xがある
IDX_empAppWorkHistoryEndDateYear 

次フォームとして追加されたすべての入力に名前を付けるだろうことを知って

0

入力の番号。

あなたは、まずglbInputsNumber

あなたのコードは以下のようになるのは、それを名前を付けてみましょう、(それは、ユーザーが雇用主を追加するたびにインクリメントされます)を追加入力の数が含まれていますグローバル変数を追加する必要があります

var totalYears = 0; 
for (let i = 0; i < glbInputsNumber; i++) { 
totalYears += parseInt(document.getElementsByName('IDX_empAppWorkHistoryEndDateYear'.replace('X', i)).value) - parseInt(document.getElementsByName('IDX_empAppWorkHistoryStartDateYear'.replace('X', i)).value); 
} 

編集:あなたはグローバル変数と大丈夫じゃない場合は、次のように追加入力数を得ることができるので、あなたは、これらすべての入力にCOMMUNクラス名を使用することができます。

var myobject = document.getElementsByClassName('dateInput');//'dateInput' is the name of class that will be attributed to those added inputs 
var inputsNumber = myobject.length/2; 
+0

あなたが提供したコードをonchange関数に追加しますか?私は完全な構文を知らない –

+0

私の編集を見ると、入力が追加されたときに入力を追跡する必要がなくなります。 –

+0

また、glbInputsNumberはどこに宣言しますか?完全な例を投稿しても構いませんか? –

関連する問題