javascript - Pemotongan rentetan, tiada idea...
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-14 10:53:26
0
2
773

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 -.-

女神的闺蜜爱上我
女神的闺蜜爱上我

membalas semua(2)
淡淡烟草味

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.

typecho

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 selectchange 事件都会修改一个对应的值,如:第一个 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;

  • Gunakan medan tersembunyi untuk mengurus output, seperti:
  • <input type="hidden" name="name[]" />

    Anda boleh menggunakan sebarang format data Secara peribadi, adalah disyorkan untuk menggunakan nombor sebanyak mungkin, seperti:
// 数组
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

Melanjutkan

kaedah pengesahan

, seperti:

Kandungan memantau kesahihan borang dan mengembalikan nilai Boolean, seperti: AppRow.prototype.validate(),该方法根据 this.value

Adakah objek kosong dahulu? Jika ya, bermakna
    pertama dalam baris ini ialah Sila pilih dan kembalikan false
  • select请选择,返回 false

    Jika .type - 0 - Pengiraan Tahunan (yang pertama
  • ) dipilih, dapatkan objek AppRow.typeChose[this.value.type]
  • .type - 0 - 年度汇算(第一个 select),则获取 AppRow.typeChose[this.value.type]

    Objek itu tidak wujud, menunjukkan bahawa ia mungkin di luar batasan, jika ia tidak wujud sama sekali
  • AppRow.typeChose[4], 返回 false

    Mengikut bilangan borang berikutnya yang sepadan dengan
  • jenis semasa yang dipilih, iaitu jenis semasa harus mempunyai beberapa anak yang berkaitan
  • AppRow.typeChose[this.value.type].types 得出 typeSubLen

    jika
  • (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.fangsthis.value.fangs === -1,返回 false

    Jika semua syarat dipenuhi, kembalikan
  • true

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan