図に示すように:
これは select を含むテーブルです。これで、すべてのドロップダウン メニューの値に関する文字列を取得できました。
別々のデータに切り出して配列に格納したいのですが、今のところ思いつきませんので、アイデアをください = =
**
**
取得される文字列は次のとおりです。「2005 年の年末最終決済承認された徴収と前払い - 2016 年月次の監査徴収と前払いを選択してください - 四半期ごとの 2008 年第 4 四半期の徴収承認」。
つまり、select で選択された値はすべてつながっており、それらを切り離すという考えはありません。
ついに作りたいです
これが私が最終的に保存したいものです。
**
**
これらの選択肢のうち、ユーザーが選択しない場合は「選択してください」と表示されますが、これらの値に「選択してください」が含まれているかどうかはどのように判断すればよいでしょうか? (つまり、選択せずに送信することはできません。ストレージ データを送信する前に、すべてのオプションを選択する必要があります)。
PS: 1. 私の年次四半期オプションと月次四半期オプションは異なります。一番上のオプションは第 2 レベルのリンケージで、一番下の月次四半期は第 3 レベルのリンケージです。
2. 私の選択はテーブルの trtd に書き込まれます。 、およびこれらは「追加」ボタンで動的に生成されます。
申し訳ありませんが、今この 2 つの点について言及するのを忘れていました。さらにいくつか追加します -.-
1. セグメンテーションを使用することは強くお勧めしません。これらのフィールドが自然に構造化されるように、「選択された」項目を最適化する方法を見つける必要があります。
分割方法を使用すると、将来のメンテナンスコストが非常に高くなります。
2. フォーム送信コード内で、各オプションの値を順番に取得し、正当性を判断します。実際、これも一般的なアプローチです。
ドロップダウンの選択と値のアイデア
以下は私の考えです
各 行 インスタンスには
value
对象,如:this.value = {}
;行内の
select
は、値の正確性を保証するために標準の数値を使用して配列の添字を比較します。すべての
change
イベントは、対応する値を変更します。たとえば、最初のselect.type
が選択されている場合、リンケージ コードの前にthis を追加します。 type = $type[0].value
- 対応する変数を自分で置き換えますselect
的change
事件都会修改一个对应的值,如:第一个select.type
选中时,在联动代码之前添加this.value.type = $type[0].value
<input type="hidden" name="name[]" />
個人的には、次のような任意のデータ形式を使用することをお勧めします。 リーリー認証について
次のような
を拡張します。select.fangs
検証メソッドコンテンツはフォームの正当性を監視し、次のようなブール値を返します。
最初は空のオブジェクトですか? そうであれば、この行の最初の
AppRow.prototype.validate()
,该方法根据this.value
がPlease select
であり、false
を返すことを意味します。.type - 0 - Annual Calculation
(最初のAppRow.typeChose[this.value.type]
オブジェクトを取得します。
;select
为请选择
,返回false
オブジェクトは存在しません。まったく存在しない場合は、境界外にある可能性があることを示します
現在の型に対応する後続のフォームの数に従って、つまり、現在の型には複数の関連する子が必要です.type - 0 - 年度汇算
(第一个select
),则获取AppRow.typeChose[this.value.type]
選択した
;AppRow.typeChose[4]
, 返回false
場合
;AppRow.typeChose[this.value.type].types
得出typeSubLen
;(this.value.length - 1) < typeSubLen
说明长度不足,缺少参数,又或!this.value.time1
不存在,返回false
;this.value.time1
存在,值=== -1
或!AppRow.typeChose[0].types[this.value.time1]
,返回false
;this.value.time2
存在,值=== -1
或!AppRow.typeChose[0].types[0].zType_time1[this.value.time1]
,返回false
すべての条件が満たされている場合は、戻ります