Nos últimos dois dias, vi amigos perguntarem como usar script para operar vários controles em HTML, e agora vou resumir sozinho. Por motivos de projeto, muitos programas são escritos em VBScript. Amigos interessados podem reescrevê-los em JavaScript. Não se esqueça de compartilhá-los ao vivo.
OK, vamos ao assunto e vamos apresentá-lo agora:
Hoje apresentaremos o uso de VBScript para determinar o número de caixas de seleção selecionadas e o valor da caixa de seleção selecionada.
Ao gerar uma lista, como uma lista de pedidos, uma caixa de seleção pode ser colocada na frente de cada registro de pedido para fornecer funções como exclusão e emissão de lote. Geralmente, o valor de cada caixa de seleção é o valor da chave primária do registro correspondente, como o número do pedido. Ao executar funções como exclusão e liberação, você precisa saber quantas caixas de seleção estão marcadas e a quais valores essas caixas de seleção correspondem.
O programa é dividido em três partes:
1. Determinar se o CheckBox selecionado é um ou mais de um
A ideia principal é: quando existem várias caixas de seleção com o mesmo nome, mas IDs diferentes, por exemplo, o controle da caixa de seleção é nomeado. chkTest, então será chamado na forma de uma matriz. Por exemplo, existem três caixas de seleção chamadas chkTest e seus IDs são chkTest1, chkTest2 e chkTest3. você deve escrever: chkTest(0).checked , chkTest(1).checked, chkTest(2).checked (o array começa do zero); Isto determina que para números diferentes (um ou mais), métodos diferentes só podem ser usados para obter informações da caixa de seleção. Porque quando existem vários controles com o mesmo nome e IDs diferentes, o controle possui a propriedade "controle nome.tipo", e essa propriedade somente leitura pode ser igual a qualquer string, ou seja, controle nome.tipo = " qualquer string" Constante é verdadeira. Claro, isso ocorre apenas quando há um atributo name.type de controle, caso contrário é sempre falso, para que possa ser distinguido se a caixa de seleção na lista é única ou múltipla. O procedimento é o seguinte:
'******************************************* ***** ***
'<nome da função>
' gfIs_ArrayTest(obj)
'<função>
'Determina se o CheckBox selecionado é um ou mais de um
'<parâmetro>
'Nome do objeto CheckBox
'<valor de retorno>
' verdadeiro
'falso
'<Comentários>
' Criado em 15 de março de 2004 por AITD
'************************************************
função gfIs_ArrayTest(obj)
em caso de erro, retome a seguir
se obj.type = "flag" então
gfIs_ArrayTest = Verdadeiro
outro
gfIs_ArrayTest = Falso
terminar se
função final
2. Verificar se a seleção das caixas de seleção na tela atende aos requisitos.
A chamada conformidade significa, por exemplo, ao excluir, selecionar pelo menos um registro, ao corrigir, selecionar e selecionar apenas um registro. outros, o que Apenas 5 itens podem ser selecionados, apenas 10 itens podem ser selecionados, etc. Basta alterar o procedimento a seguir para o seguinte. Não se esqueça do que acabei de dizer, existem diferentes maneiras de lidar com apenas uma caixa de seleção e várias caixas de seleção.
'********************************************** ****
'<nome da função>
'gfChkCheckbox()
'<função>
'Verifica se a seleção do CheckBox da Tela atende aos requisitos
'<parâmetro>
'obj: controle de caixa de seleção correspondente
'flag: Verifique as regras: 0 pode ter vários selecionados
'1 Apenas um pode ser selecionado
'nome: solicita ao usuário informações sobre qual controle relatou um erro
'<valor de retorno>
' verdadeiro
'falso
'<Comentários>
' Criado em 15 de março de 2004 por AITD
'********************************************** ****
função gfChkCheckbox(obj,flag,nome)
Escureça eu
j
gfChkCheckbox = falso
eu = 0
j = 0
'Se o objeto não existe
se for nulo (obj) então
msgbox "Por favor selecione um " + nome + "." 'Por favor selecione um objeto
gfChkCheckbox = falso
função de saída
terminar se
'Há apenas um objeto
se não for gfIs_ArrayTest(obj) então
se obj.checked = falso então
msgbox "Por favor selecione um " + nome + "." 'Por favor selecione um objeto
gfChkCheckbox = falso
função de saída
outro
gfChkCheckbox = verdadeiro
função de saída
terminar se
end if
'Se existirem vários objetos
para i = 0 para (obj.length - 1)
se obj(i).type = "caixa de seleção" então
se obj(i).checked = verdadeiro então
j=j+1
terminar se
terminar se
próximo
se j = 0 então
msgbox "Por favor, selecione" + nome + "." 'Por favor, selecione um objeto
gfChkCheckbox = falso
função de saída
terminar se
se j = 1 então
gfChkCheckbox = verdadeiro
função de saída
terminar se
se j > 1 então
se sinalizador = 1 então
msgbox "Apenas um " + nome + " pode ser selecionado." 'Apenas um objeto pode ser selecionado."
gfChkCheckbox = falso
função de saída
outro
gfChkCheckbox = verdadeiro
função de saída
terminar se
end if
end function
3. Obtenha
o valor
da caixa de seleção Para conveniência de processamento posterior, informações importantes geralmente são salvas no atributo de valor da caixa de seleção para acesso posterior.O programa a seguir encadeia o valor da caixa de seleção selecionada em uma string usando o separador "^|^" e o retorna.
'************************************************
'<nome da função>
'gfGetCheckBoxValue(obj)
'<função>
'Obtém o valor do CheckBox selecionado
'<parâmetro>
'Nome do objeto CheckBox
'<valor de retorno>
'O valor do CheckBox selecionado
'<Comentários>
' Criado em 15 de março de 2004 por AITD
'************************************************
função gfGetCheckBoxValue(obj)
dim strValue
dim intCounter
dim e
strValue = ""
intCounter = 0
'Se o objeto não existir
se for nulo (obj) então
gfGetCheckBoxValue = strValue
função de saída
end if
'Se o objeto for um
se não for gfIs_ArrayTest(obj) então
se obj.checked = falso então
gfGetCheckBoxValue = strValue
função de saída
outro
gfGetCheckBoxValue = obj.valor
função de saída
terminar se
end if
'Se o objeto for múltiplo
para i = 0 para obj.length - 1
se obj(i).checked = verdadeiro então
se intCounter > 0 então
strValue = strValue & "^|^" & CStr(obj(i).valor)
outro
strValor = CStr(obj(i).valor)
terminar se
intCounter = intCounter + 1
terminar se
próximo
gfGetCheckBoxValue = strValue
função final
acimaé o método de processamento de caixas de seleção em VBScript (usado ocasionalmente). Essas funções podem ser encapsuladas em um arquivo vbs comum e referenciadas na área de tag <head> do HTML para torná-las universais ~ como <head><script language=vbscript src=vbsChkBoxTool.vbs></script> </ head>
Observe também que em aplicações reais, pode não haver um único registro na lista gerada com base nas condições de consulta, ou seja, não há controle de caixa de seleção Se um controle com esse nome ainda for chamado, IE. will Um erro será relatado. Não havia uma boa solução, então escrevi um programa para contornar essa situação sem um controle de caixa de seleção:
function sIsChkBoxExist()
em caso de erro, retome a seguir
err.claro
se estiver vazio (document.frmOrderList.chkOrder) então
terminar se
se err.número <> 0 então
outro
sIsChkBoxExist = verdadeiro
terminar se
err.claro
de função final
, execute qualquer operação no controle predeterminado, como isEmpty. Se err.number>0 for capturado, significa que o controle não existe. solicitado. Isso também determina se o controle existe.
Cada vez antes de chamar as três funções acima, chame a função sIsChkBoxExist uma vez para ver se o controle correspondente existe, para que não haja erros.