Seperti yang ditunjukkan dalam gambar:
Ini ialah jadual dengan pilihan di dalamnya. Kini kami telah memperoleh rentetan tentang nilai semua menu lungsur.
Saya mahu memotongnya menjadi data berasingan dan menyimpannya dalam tatasusunan Saya tidak tahu pada masa ini
Soalan pertama:
Rentetan yang diperolehi ialah: "Penyelesaian akhir akhir tahun 2005 kutipan diluluskan dan prabayaran - bulanan 2016, sila pilih kutipan audit dan prabayaran - suku tahunan 2008 kutipan diluluskan suku keempat".
Dalam erti kata lain, semua nilai yang dipilih oleh pilihan disambungkan bersama dan saya tidak tahu untuk memisahkannya.
Akhirnya saya nak buat
[{type:"年终汇算",time1:"2005年",time2:"",fangs:"核定征收"},{type:"预缴-月度",time1:"2016年",time2:"2月",fangs:"查账征收"},{type:"预缴-季度",time1:"2008年",time2:"第四季度",fangs:"查账征收"}]
Ini yang saya nak simpan akhirnya. **
Soalan kedua:
Untuk pilihan ini, jika pengguna tidak memilih, "Sila pilih" akan dipaparkan. Bagaimanakah kita boleh menilai sama ada "Sila pilih" muncul dalam nilai ini? (Dengan kata lain, anda tidak boleh menyerahkan tanpa memilihnya. Anda mesti memilih setiap pilihan sebelum anda boleh menyerahkan data storan).
PS: 1. Pilihan suku tahunan dan bulanan saya adalah berbeza Yang teratas adalah pautan tahap kedua, dan bahagian bawah untuk suku bulanan adalah pautan tahap ketiga 2. Pilihan saya ditulis dalam trtd jadual. dan ini semua Terdapat butang "Tambah" yang dijana secara dinamik.
Maaf saya terlupa nak sebut dua point ni tadi, saya tambah sahaja -.-
1. Sangat tidak disyorkan untuk menggunakan segmentasi Anda harus mencari cara untuk mengoptimumkan item "dipilih" supaya medan ini berstruktur secara semula jadi.
Jika anda menggunakan kaedah segmentasi, kos penyelenggaraan akan menjadi sangat tinggi pada masa hadapan.
2. Dalam kod penyerahan borang, dapatkan nilai setiap pilihan secara bergilir-gilir dan nilaikan kesahihannya. Malah, ini juga merupakan pendekatan biasa.
Pemilihan drop-down dan idea nilai
Berikut adalah pemikiran saya
Setiap baris contoh mempunyai
value
对象,如:this.value = {}
;select
dalam baris menggunakan nilai angka standard untuk membandingkan subskrip tatasusunan bagi memastikan ketepatan nilai;Setiap
select
的change
事件都会修改一个对应的值,如:第一个select.type
选中时,在联动代码之前添加this.value.type = $type[0].value
change
akan mengubah suai nilai yang sepadan Contohnya: apabilaselect.type
yang pertama dipilih, tambahkanini sebelum kod pautan. type = $type[0].value
- Gantikan sendiri pembolehubah yang sepadan;<input type="hidden" name="name[]" />
akan menjana data yang tersedia untuk digunakan dalam borang apabila dipilih, seperti:
Mengenai pengesahan
Melanjutkanselect.fangs
kaedah pengesahan
, seperti:Kandungan memantau kesahihan borang dan mengembalikan nilai Boolean, seperti:
Adakah objek kosong dahulu? Jika ya, bermaknaAppRow.prototype.validate()
,该方法根据this.value
pertama dalam baris ini ialah-
Jika ) dipilih, dapatkan objek -
Objek itu tidak wujud, menunjukkan bahawa ia mungkin di luar batasan, jika ia tidak wujud sama sekali ;-
Mengikut bilangan borang berikutnya yang sepadan dengan jenis semasa yang dipilih, iaitu jenis semasa harus mempunyai beberapa anak yang berkaitan -
jika ;
;
;
;-
Jika semua syarat dipenuhi, kembalikan ;
Sila pilih
dan kembalikanfalse
select
为请选择
,返回false
.type - 0 - Pengiraan Tahunan
(yang pertamaAppRow.typeChose[this.value.type]
.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
!this.value.fangs
或this.value.fangs === -1
,返回false
true