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.
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.
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.
Sélection déroulante et idées de valeur
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 premierselect.type
est sélectionné, ajoutezthis avant la valeur du code de liaison. type = $type[0].value
- Remplacez vous-même la variable correspondanteUtilisez des champs masqués pour gérer la sortie, tels que :
<input type="hidden" name="name[]" />
;Le dernier
générera des données disponibles à utiliser dans le formulaire lorsqu'il est sélectionné, telles que :select.fangs
À propos de la vérificationÉtendez une
méthode de validation, telle que : Le contenu surveille la légalité du formulaire et renvoie une valeur booléenne, telle que :
AppRow.prototype.validate()
,该方法根据this.value
Est-ce d'abord un objet vide ? Si oui, cela signifie que le premier- de cette ligne est
- ;
-
- ;
-
-
-
-
-
Veuillez sélectionner
et renvoyerfalse
;
) est sélectionné, récupérez l'objetselect
为请选择
,返回false
Si.type - 0 - Calcul annuel
(le premierAppRow.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
type actuel sélectionné, c'est-à-dire que le type actuel doit avoir plusieurs enfants liésAppRow.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