Au cours des deux derniers jours, j'ai vu des amis demander comment utiliser un script pour faire fonctionner divers contrôles en HTML, et maintenant je vais le résumer moi-même. Pour des raisons de projet, de nombreux programmes sont écrits en VBScript. Les amis intéressés peuvent les réécrire en JavaScript. N'oubliez pas de les partager en direct.
OK, passons au sujet et présentons-le maintenant :
aujourd'hui, nous allons présenter l'utilisation de VBScript pour déterminer le nombre de cases à cocher sélectionnées et la valeur de la case à cocher sélectionnée.
Lors de la génération d'une liste, telle qu'une liste de commandes, une case à cocher peut être placée devant chaque enregistrement de commande pour fournir des fonctions telles que la suppression et l'émission de lots. Généralement, la valeur de chaque case à cocher est la valeur de la clé primaire de l'enregistrement correspondant, comme le numéro de commande. Lorsque vous exécutez des fonctions telles que la suppression et la libération, vous devez savoir combien de cases à cocher sont sélectionnées et à quelles valeurs correspondent ces cases. La méthode est expliquée ci-dessous.
Le programme est divisé en trois parties :
1. Déterminer si le CheckBox sélectionné en est un ou plusieurs.
L'idée principale est la suivante : lorsqu'il existe plusieurs cases à cocher portant le même nom mais des ID différents, par exemple, le contrôle de la case à cocher est nommé. chkTest, alors il sera appelé sous la forme d'un tableau. Par exemple, il y a trois cases à cocher nommées chkTest et leurs ID sont chkTest1, chkTest2 et chkTest3. Si vous souhaitez afficher les attributs cochés des trois cases, vous devez écrire : chkTest(0).checked , chkTest(1).checked, chkTest(2).checked (le tableau part de zéro lorsqu'il n'y a qu'une seule case à cocher, chkTest.checked peut être utilisé directement) ; Cela détermine que pour différents nombres (un ou plusieurs), différentes méthodes peuvent uniquement être utilisées pour obtenir des informations sur les cases à cocher. Parce que lorsqu'il existe plusieurs contrôles avec le même nom et des ID différents, le contrôle a la propriété "control name.type", et cette propriété en lecture seule peut être égale à n'importe quelle chaîne, c'est-à-dire control name.type = " n'importe quelle chaîne" La constante est vraie. Bien sûr, cela n'est possible que lorsqu'il existe un attribut name.type de contrôle, sinon il est toujours faux, afin de pouvoir distinguer si la case à cocher dans la liste est unique ou multiple. La procédure est la suivante :
'********************************************* ***** ***
'<nom de la fonction>
' gfIs_ArrayTest(obj)
'<fonction>
' Détermine si le CheckBox sélectionné est un ou plusieurs
'<paramètre>
' Nom de l'objet CheckBox
'<valeur de retour>
' vrai
' FAUX
'<Remarques>
' Créé le 15 mars 2004 par AITD
'************************************************
fonction gfIs_ArrayTest(obj)
en cas d'erreur, reprendre ensuite
si obj.type = "drapeau" alors
gfIs_ArrayTest = Vrai
autre
gfIs_ArrayTest = Faux
finir si
fonction de fin
2. Vérifiez si la sélection des cases à cocher à l'écran répond aux exigences.
Les moyens dits de conformité, par exemple, lors de la suppression, sélectionnez au moins un enregistrement, lors de la correction, sélectionnez et sélectionnez un seul enregistrement. d'autres, quoi Seuls 5 éléments peuvent être sélectionnés, seuls 10 éléments peuvent être sélectionnés, etc. Remplacez simplement la procédure suivante par la suivante. N'oubliez pas ce que je viens de dire, il existe différentes manières de gérer une seule case à cocher et plusieurs cases à cocher.
'************************************************ * ****
'<nom de la fonction>
' gfChkCheckbox()
'<fonction>
' Vérifiez si la sélection de la Screen CheckBox répond aux exigences
'<paramètre>
' obj : contrôle de case à cocher correspondant
'drapeau : Vérifiez les règles : 0 peut en avoir plusieurs sélectionnés
' 1 Un seul peut être sélectionné
' nom : demande à l'utilisateur des informations sur le contrôle qui a signalé une erreur
'<valeur de retour>
' vrai
' FAUX
'<Remarques>
' Créé le 15 mars 2004 par AITD
'************************************************ * ****
fonction gfChkCheckbox (obj, drapeau, nom)
Faible je
j
gfChkCheckbox = faux
je = 0
j = 0
'Si l'objet n'existe pas
si est nul (obj) alors
msgbox "Veuillez sélectionner un " + nom + " 'Veuillez sélectionner un objet. "
gfChkCheckbox = faux
fonction de sortie
finir si
'Il n'y a qu'un seul objet
sinon gfIs_ArrayTest(obj) alors
si obj.checked = false alors
msgbox "Veuillez sélectionner un " + nom + " 'Veuillez sélectionner un objet. "
gfChkCheckbox = faux
fonction de sortie
autre
gfChkCheckbox = vrai
fonction de sortie
finir si
end if
'Si plusieurs objets existent
pour i = 0 à (obj.length - 1)
si obj(i).type = "case à cocher" alors
si obj(i).checked = vrai alors
j=j+1
finir si
finir si
suivant
si j = 0 alors
msgbox "Veuillez sélectionner" + nom + "." 'Veuillez sélectionner un objet
gfChkCheckbox = faux
fonction de sortie
finir si
si j = 1 alors
gfChkCheckbox = vrai
fonction de sortie
finir si
si j > 1 alors
si drapeau = 1 alors
msgbox "Un seul " + nom + " peut être sélectionné." 'Un seul objet peut être sélectionné.
gfChkCheckbox = faux
fonction de sortie
autre
gfChkCheckbox = vrai
fonction de sortie
finir si
end if
end Fonction
3. Obtenir
la valeur
de la case à cocher .Pour faciliter le traitement ultérieur, les informations importantes sont souvent enregistrées dans l'attribut value de la case à cocher pour un accès ultérieur.Le programme suivant enchaîne la valeur de la case à cocher sélectionnée dans une chaîne en utilisant le séparateur "^|^" et la renvoie.
'************************************************
'<nom de la fonction>
'gfGetCheckBoxValue(obj)
'<fonction>
'Obtenir la valeur du CheckBox sélectionné
'<paramètre>
' Nom de l'objet CheckBox
'<valeur de retour>
'La valeur du CheckBox sélectionné
'<Remarques>
' Créé le 15 mars 2004 par AITD
'************************************************
fonction gfGetCheckBoxValue(obj)
dim strValue
dim intCompteur
dim je
strValue = ""
intCounter = 0
'Si l'objet n'existe pas
si est nul (obj) alors
gfGetCheckBoxValue = strValue
fonction de sortie
end if
'Si l'objet est un
sinon gfIs_ArrayTest(obj) alors
si obj.checked = false alors
gfGetCheckBoxValue = strValue
fonction de sortie
autre
gfGetCheckBoxValue = obj.value
fonction de sortie
finir si
end if
'Si l'objet est multiple
pour i = 0 à obj.length - 1
si obj(i).checked = vrai alors
si intCounter > 0 alors
strValue = strValue & "^|^" & CStr(obj(i).valeur)
autre
strValue = CStr(obj(i).valeur)
finir si
Compteur int = Compteur int + 1
finir si
suivant
gfGetCheckBoxValue = strValue
fonction de fin
ci-dessusest la méthode de traitement des cases à cocher dans VBScript (occasionnellement utilisée). Ces fonctions peuvent être encapsulées dans un fichier vbs commun et référencées dans la zone de balise <head> du HTML pour les rendre universelles ~ comme <head><script language=vbscript src=vbsChkBoxTool.vbs></script> </ head>
Notez également que dans les applications réelles, il peut ne pas y avoir un seul enregistrement dans la liste générée en fonction des conditions de requête, c'est-à-dire qu'il n'y a pas de contrôle de case à cocher. Si un contrôle portant un tel nom est toujours appelé, IE. will Une erreur sera signalée. Il n'y avait pas de bonne solution, j'ai donc écrit un programme pour contourner cette situation sans case à cocher :
function sIsChkBoxExist()
en cas d'erreur, reprendre ensuite
err.clear
si isEmpty(document.frmOrderList.chkOrder) alors
finir si
si numéro d'erreur <> 0 alors
autre
sIsChkBoxExist=true
finir si
err.clear
de fonction de fin
, effectuez n'importe quelle opération sur le contrôle prédéterminé, tel que isEmpty. Si err.number>0 est capturé, cela signifie que le contrôle n'existe pas. Cependant, comme il y a une reprise d'erreur ensuite, aucune erreur ne se produira. » C'est également cela qui détermine si le contrôle existe.
Chaque fois avant d'appeler les trois fonctions ci-dessus, appelez une fois la fonction sIsChkBoxExist pour voir si le contrôle correspondant existe, afin qu'il n'y ait pas d'erreurs.