Maison > Questions et réponses > le corps du texte
Comme le montre l'image :
Il s'agit d'un tableau contenant une sélection. Nous avons maintenant obtenu une chaîne sur les valeurs de tous les menus déroulants.
Je souhaite les découper en données séparées et les stocker dans un tableau. Je n'en ai aucune idée pour le moment. Veuillez me donner quelques idées = =
**
**
La chaîne obtenue est : "Règlement final de fin d'année 2005 encaissement et paiement anticipé approuvés - mensuel 2016, veuillez sélectionner audit encaissement et prépaiement - encaissement approuvé trimestriel du quatrième trimestre 2008".
En d'autres termes, toutes les valeurs sélectionnées par select sont connectées entre elles, et je n'ai aucune idée deles séparer.
Enfin, je veux y arriver
[{type:"年终汇算",time1:"2005年",time2:"",fangs:"核定征收"},{type:"预缴-月度",time1:"2016年",time2:"2月",fangs:"查账征收"},{type:"预缴-季度",time1:"2008年",time2:"第四季度",fangs:"查账征收"}]
C'est ce que je veux sauver au final.
**
**
Pour ces options, si l'utilisateur ne choisit pas, « Veuillez sélectionner » s'affichera. Comment pouvons-nous juger si « Veuillez sélectionner » apparaît dans ces valeurs ? (En d’autres termes, vous ne pouvez pas soumettre sans la sélectionner. Vous devez sélectionner toutes les options avant de pouvoir soumettre les données de stockage).
PS : 1. Mes options trimestrielles annuelles et mensuelles sont différentes. Celle du haut est le lien de deuxième niveau, et celle du bas pour le trimestre mensuel est le lien de troisième niveau 2. Ma sélection est écrite dans le trtd du tableau, et ce sont tous. Il y a un bouton "Ajouter" généré dynamiquement.
淡淡烟草味2017-06-14 10:55:26
1. Il est fortement déconseillé d'utiliser la segmentation. Vous devez trouver un moyen d'optimiser les éléments "get selected" pour que ces champs soient naturellement structurés.
Si vous utilisez la méthode de segmentation, le coût de maintenance sera très élevé à l'avenir.
Si vous insistez pour utiliser la méthode habituelle, vous devez d'abord utiliser "-" pour couper la ficelle.
Pour chaque chaîne, faites correspondre "calcul de fin d'année", "mensuel", "trimestriel", etc., obtenez le type, puis continuez à faire correspondre l'heure, puis faites correspondre les crocs
2. Dans le code de soumission du formulaire, obtenez tour à tour la valeur de chaque option et jugez de la légalité. En fait, c’est aussi une approche courante.
typecho2017-06-14 10:55:26
Voici mes pensées
Chaque instance de ligne a un value
对象,如:this.value = {}
;
Le select
dans la ligne utilise des valeurs numériques standard pour comparer les indices du tableau afin de garantir l'exactitude de la valeur ;
Chaque événement select
的 change
事件都会修改一个对应的值,如:第一个 select.type
选中时,在联动代码之前添加 this.value.type = $type[0].value
change
modifiera une valeur correspondante. Par exemple : lorsque le premier select.type
est sélectionné, ajoutez this avant la valeur du code de liaison. type = $type[0].value
- Remplacez vous-même la variable correspondante
Utilisez des champs masqués pour gérer la sortie, tels que : <input type="hidden" name="name[]" />
;
// 数组
this.value = [1,1,1,0]; // 预缴-月度|2016年|1月|查账征收
// 对象
this.value = {
type: 2, // 预缴-季度
years: 1, // 2016年
time: 3, // 第四季度
fangs:1 // 核定征收
};
Le dernier
générera des données disponibles à utiliser dans le formulaire lorsqu'il est sélectionné, telles que :
$fangs.on('change.app', $.proxy(function(e){
// 添加值
this.value.fangs = $fangs[0].value;
// 生成表单值
this.$output.val(JSON.stringify(this.value));
}, this));
select.fangs
À propos de la vérification
, telle que : Le contenu surveille la légalité du formulaire et renvoie une valeur booléenne, telle que :
AppRow.prototype.validate()
,该方法根据 this.value
Veuillez sélectionner
et renvoyer false
;
select
为 请选择
,返回 false
Si .type - 0 - Calcul annuel
(le premier
AppRow.typeChose[this.value.type]
.type - 0 - 年度汇算
(第一个 select
),则获取 AppRow.typeChose[this.value.type]
L'objet n'existe pas, ce qui indique qu'il est peut-être hors limites, s'il n'existe pas du tout
AppRow.typeChose[4]
, 返回 false
Selon le nombre de formulaires suivants correspondant au
AppRow.typeChose[this.value.type].types
得出 typeSubLen
si
(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
Si toutes les conditions sont remplies, revenez