Rumah > Soal Jawab > teks badan
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 -.-
淡淡烟草味2017-06-14 10:55:26
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.
Jika anda berkeras untuk menggunakan kaedah biasa, anda perlu menggunakan "-" terlebih dahulu untuk memotong tali.
Untuk setiap rentetan, padankan "pengiraan akhir tahun", "bulanan", "suku tahunan", dsb., dapatkan jenisnya, kemudian teruskan padankan masa, dan kemudian padankan taring
2. Dalam kod penyerahan borang, dapatkan nilai setiap pilihan secara bergilir-gilir dan nilaikan kesahihannya. Malah, ini juga merupakan pendekatan biasa.
typecho2017-06-14 10:55:26
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: apabila select.type
yang pertama dipilih, tambahkan ini sebelum kod pautan. type = $type[0].value
- Gantikan sendiri pembolehubah yang sepadan;
<input type="hidden" name="name[]" />
// 数组
this.value = [1,1,1,0]; // 预缴-月度|2016年|1月|查账征收
// 对象
this.value = {
type: 2, // 预缴-季度
years: 1, // 2016年
time: 3, // 第四季度
fangs:1 // 核定征收
};
Yang terakhir akan menjana data yang tersedia untuk digunakan dalam borang apabila dipilih, seperti:
$fangs.on('change.app', $.proxy(function(e){
// 添加值
this.value.fangs = $fangs[0].value;
// 生成表单值
this.$output.val(JSON.stringify(this.value));
}, this));
Mengenai pengesahanselect.fangs
Kandungan memantau kesahihan borang dan mengembalikan nilai Boolean, seperti:
AppRow.prototype.validate()
,该方法根据 this.value
Sila pilih
dan kembalikan false
select
为 请选择
,返回 false
.type - 0 - Pengiraan Tahunan
(yang pertama AppRow.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