En los últimos dos días, he visto a amigos preguntar cómo usar scripts para operar varios controles en HTML, y ahora lo resumiré yo mismo. Debido a razones del proyecto, muchos programas están escritos en VBScript. Los amigos interesados pueden reescribirlos en JavaScript. No olviden compartirlos en vivo.
Bien, vayamos al tema y presentémoslo ahora:
hoy presentaremos el uso de VBScript para determinar el número de casillas de verificación seleccionadas y el valor de la casilla de verificación seleccionada.
Al generar una lista, como una lista de pedidos, se puede colocar una casilla de verificación delante de cada registro de pedido para proporcionar funciones como la eliminación y emisión de lotes. Generalmente, el valor de cada casilla de verificación es el valor de la clave principal del registro correspondiente, como el número de pedido. Al realizar funciones como eliminar y liberar, necesita saber cuántas casillas de verificación están seleccionadas y a qué valores corresponden estas casillas de verificación. El método se explica a continuación.
El programa se divide en tres partes:
1. Determinar si la casilla de verificación seleccionada es una o más de una.
La idea principal es: cuando hay varias casillas de verificación con el mismo nombre pero con diferentes ID, por ejemplo, el control de la casilla de verificación recibe un nombre. chkTest, entonces se llama en forma de matriz. Por ejemplo, hay tres casillas de verificación denominadas chkTest y sus ID son chkTest1, chkTest2 y chkTest3. Si desea ver los atributos marcados de las tres casillas de verificación, debes escribir: chkTest(0).checked , chkTest(1).checked, chkTest(2).checked (la matriz comienza desde cero cuando solo hay una casilla de verificación, chkTest.checked se puede usar directamente); Esto determina que para diferentes números (uno o más), solo se pueden usar diferentes métodos para obtener información de la casilla de verificación. Porque cuando hay varios controles con el mismo nombre y diferentes ID, el control tiene la propiedad "nombre de control.tipo", y esta propiedad de solo lectura puede ser igual a cualquier cadena, es decir, nombre de control.tipo = " cualquier cadena" La constante es verdadera. Por supuesto, esto es solo cuando hay un atributo de control name.type; de lo contrario, siempre es falso, de modo que se puede distinguir si la casilla de verificación en la lista es única o múltiple. El procedimiento es el siguiente:
'********************************************* ***** ***
'<nombre de función>
'gfIs_ArrayTest(obj)
'<función>
' Determina si el CheckBox seleccionado es uno o más de uno
'<parámetro>
' Nombre del objeto CheckBox
'<valor de retorno>
' verdadero
' FALSO
'<Observaciones>
' Creado el 15 de marzo de 2004 por AITD
'************************************************
función gfIs_ArrayTest(obj)
en caso de error reanudar siguiente
si obj.type = "bandera" entonces
gfIs_ArrayTest = Verdadero
demás
gfIs_ArrayTest = Falso
terminar si
función final
2. Verifique si la selección de casillas de verificación en la pantalla cumple con los requisitos.
El llamado cumplimiento significa, por ejemplo, al eliminar, seleccione al menos un registro, al corregir, seleccione y solo seleccione un registro. otros, que Solo se pueden seleccionar 5 elementos, solo se pueden seleccionar 10 elementos, etc. Simplemente cambie el siguiente procedimiento a lo siguiente. No olvides lo que acabo de decir, hay diferentes formas de manejar solo una casilla de verificación y varias casillas de verificación.
'************************************************ * ****
'<nombre de función>
'gfChkCheckbox()
'<función>
' Comprobar si la selección de Screen CheckBox cumple con los requisitos
'<parámetro>
' obj: control de casilla de verificación correspondiente
'flag: Verificar reglas: 0 puede tener múltiples seleccionados
' 1 Sólo se puede seleccionar uno
' nombre: solicita al usuario información sobre qué control informó un error
'<valor de retorno>
' verdadero
' FALSO
'<Observaciones>
' Creado el 15 de marzo de 2004 por AITD
'************************************************ * ****
función gfChkCheckbox(obj,bandera,nombre)
Yo tenue
j
gfChkCheckbox = falso
yo = 0
j = 0
'Si el objeto no existe
si es nulo (obj) entonces
msgbox "Por favor seleccione un " + nombre + "." 'Por favor seleccione un objeto
gfChkCheckbox = falso
función de salida
terminar si
'Solo hay un objeto
si no es gfIs_ArrayTest(obj) entonces
si obj.checked = false entonces
msgbox "Por favor seleccione un " + nombre + "." 'Por favor seleccione un objeto
gfChkCheckbox = falso
función de salida
demás
gfChkCheckbox = verdadero
función de salida
terminar si
end if
'Si existen varios objetos
para i = 0 a (obj.length - 1)
si obj(i).type = "casilla de verificación" entonces
si obj(i).checked = verdadero entonces
j=j+1
terminar si
terminar si
próximo
si j = 0 entonces
msgbox "Por favor seleccione" + nombre + "." 'Por favor seleccione un objeto
gfChkCheckbox = falso
función de salida
terminar si
si j = 1 entonces
gfChkCheckbox = verdadero
función de salida
terminar si
si j > 1 entonces
si bandera = 1 entonces
msgbox "Sólo se puede seleccionar un " + nombre + "." 'Sólo se puede seleccionar un objeto".
gfChkCheckbox = falso
función de salida
demás
gfChkCheckbox = verdadero
función de salida
terminar si
end if
end function
3. Obtenga
el valor
de la casilla de verificación Para facilitar el procesamiento posterior, la información importante a menudo se guarda en el atributo de valor de la casilla de verificación para acceder a ella más adelante.El siguiente programa encadena el valor de la casilla de verificación seleccionada en una cadena usando el separador "^|^" y lo devuelve.
'************************************************
'<nombre de función>
'gfGetCheckBoxValue(obj)
'<función>
'Obtener el valor del CheckBox seleccionado
'<parámetro>
' Nombre del objeto CheckBox
'<valor de retorno>
'El valor del CheckBox seleccionado
'<Observaciones>
' Creado el 15 de marzo de 2004 por AITD
'************************************************
función gfGetCheckBoxValue(obj)
dim strValue
tenue intContador
tenue i
strValue = ""
intCounter = 0
'Si el objeto no existe
si es nulo (obj) entonces
gfGetCheckBoxValue = strValue
función de salida
end if
'Si el objeto es un
si no es gfIs_ArrayTest(obj) entonces
si obj.checked = false entonces
gfGetCheckBoxValue = strValue
función de salida
demás
gfGetCheckBoxValue = obj.valor
función de salida
terminar si
end if
'Si el objeto es múltiple
para i = 0 a longitud obj. - 1
si obj(i).checked = verdadero entonces
si intCounter > 0 entonces
strValue = strValue & "^|^" & CStr(obj(i).valor)
demás
strValue = CStr(obj(i).valor)
terminar si
contadorint = contadorint + 1
terminar si
siguiente
gfGetCheckBoxValue = strValue
función final
anteriores el método para procesar casillas de verificación en VBScript (se usa ocasionalmente). Estas funciones se pueden encapsular en un archivo vbs común y hacer referencia a ellas en el área de etiquetas <head> de html para hacerlas universales ~ como <head><script language=vbscript src=vbsChkBoxTool.vbs></script> </ head>
También tenga en cuenta que en las aplicaciones reales, es posible que no haya un solo registro en la lista generada según las condiciones de la consulta, es decir, no hay ningún control de casilla de verificación. Si todavía se llama a un control con ese nombre, IE. Se informará un error. No había una buena solución, así que escribí un programa para evitar esta situación sin un control de casilla de verificación:
función sIsChkBoxExist()
en caso de error reanudar siguiente
errar.claro
si está vacío (document.frmOrderList.chkOrder) entonces
terminar si
si número de error <> 0 entonces
demás
sIsChkBoxExist=verdadero
terminar si
errar.claro
de función final
, realice cualquier operación en el control predeterminado, como isEmpty. Si se captura err.number>0, significa que el control no existe. Sin embargo, debido a que hay un error al reanudar a continuación, no se producirá ningún error. Se le solicita. Esto también determina si el control existe.
Cada vez que llame a las tres funciones anteriores, llame a la función sIsChkBoxExist una vez para ver si existe el control correspondiente, de modo que no haya errores.