Dalam dua hari terakhir, saya melihat teman-teman bertanya bagaimana cara menggunakan skrip untuk mengoperasikan berbagai kontrol dalam HTML, dan sekarang saya akan merangkumnya sendiri. Karena alasan proyek, banyak program yang ditulis dalam VBScript. Teman-teman yang tertarik dapat menulis ulang ke dalam JavaScript. Jangan lupa untuk membagikannya secara langsung.
Oke, mari kita ke topik dan memperkenalkannya sekarang:
Hari ini kami akan memperkenalkan penggunaan VBScript untuk menentukan jumlah kotak centang yang dipilih dan nilai kotak centang yang dipilih.
Saat membuat daftar, seperti daftar pesanan, kotak centang dapat ditempatkan di depan setiap catatan pesanan untuk menyediakan fungsi seperti penghapusan dan penerbitan batch. Umumnya, nilai setiap kotak centang adalah nilai kunci utama dari catatan terkait, misalnya nomor pesanan. Saat menjalankan fungsi seperti penghapusan dan pelepasan, Anda perlu mengetahui berapa banyak kotak centang yang dipilih dan nilai apa yang sesuai dengan kotak centang tersebut. Metodenya dijelaskan di bawah.
Program ini dibagi menjadi tiga bagian:
1. Tentukan apakah Kotak Centang yang dipilih adalah satu atau lebih dari satu.
Ide utamanya adalah: ketika ada beberapa kotak centang dengan nama yang sama tetapi ID berbeda, misalnya kontrol kotak centang diberi nama. chkTest, maka akan dipanggil dalam bentuk array. Misalnya, ada tiga kotak centang bernama chkTest dan ID-nya adalah chkTest1, chkTest2, dan chkTest3. Anda harus menulis: chkTest(0).checked , chkTest(1).checked, chkTest(2).checked (array dimulai dari nol); ketika hanya ada satu kotak centang, chkTest.checked dapat digunakan secara langsung. Hal ini menentukan bahwa untuk nomor yang berbeda (satu atau lebih), metode yang berbeda hanya dapat digunakan untuk memperoleh informasi kotak centang. Karena ketika ada beberapa kontrol dengan nama yang sama dan ID yang berbeda, kontrol tersebut memiliki properti "nama kontrol.type", dan properti read-only ini dapat sama dengan string apa pun, yaitu, nama kontrol.type = " string apa pun" Konstanta benar. Tentu saja ini hanya jika ada atribut kontrol name.type, selain itu selalu salah, sehingga dapat dibedakan apakah kotak centang dalam daftar itu tunggal atau ganda. Prosedurnya adalah sebagai berikut:
'********************************************* ***** ***
'<nama fungsi>
' gfIs_ArrayTest(obj)
'<fungsi>
' Tentukan apakah Kotak Centang yang dipilih ada satu atau lebih dari satu
'<parameter>
' Nama objek Kotak Centang
'<nilai kembalian>
' BENAR
' PALSU
'<Keterangan>
' Dibuat pada 15 Maret 2004 oleh AITD
'***************************************************
fungsi gfIs_ArrayTest(obj)
pada kesalahan lanjutkan berikutnya
jika obj.type = "bendera" maka
gfIs_ArrayTest = Benar
kalau tidak
gfIs_ArrayTest = Salah
berakhir jika
fungsi akhir
2. Periksa apakah pemilihan kotak centang di layar memenuhi persyaratan.
Yang disebut kepatuhan berarti, misalnya, saat menghapus, pilih setidaknya satu catatan, saat mengoreksi, pilih dan hanya pilih satu catatan lainnya, apa Hanya 5 item yang dapat dipilih, hanya 10 item yang dapat dipilih, dll. Ubah saja prosedur berikut menjadi berikut. Jangan lupa apa yang baru saja saya katakan, ada berbagai cara untuk menangani hanya satu kotak centang dan beberapa kotak centang.
'******************************************************* ****
'<nama fungsi>
' gfChkKotak Centang()
'<fungsi>
' Periksa apakah pemilihan Kotak Centang Layar memenuhi persyaratan
'<parameter>
'obj: kontrol kotak centang yang sesuai
'bendera: Periksa aturan: 0 dapat memilih beberapa
' 1 Hanya satu yang dapat dipilih
' nama: meminta pengguna dengan informasi tentang kontrol mana yang melaporkan kesalahan
'<nilai kembalian>
' BENAR
' PALSU
'<Keterangan>
' Dibuat pada 15 Maret 2004 oleh AITD
'******************************************************* ****
fungsi gfChkCheckbox(obj,bendera,nama)
Redupkan saya
J
gfChkCheckbox = salah
saya = 0
j = 0
'Jika objeknya tidak ada
jika isnull(obj) maka
msgbox "Silakan pilih " + nama + "." 'Silahkan pilih sebuah objek
gfChkCheckbox = salah
fungsi keluar
berakhir jika
'Hanya ada satu objek
jika bukan gfIs_ArrayTest(obj) maka
jika obj.checked = false maka
msgbox "Silakan pilih " + nama + "." 'Silahkan pilih sebuah objek
gfChkCheckbox = salah
fungsi keluar
kalau tidak
gfChkCheckbox = benar
fungsi keluar
berakhir jika
end if
'Jika ada beberapa objek
untuk i = 0 hingga (obj.length - 1)
jika obj(i).type = "kotak centang" lalu
jika obj(i).checked = true maka
j=j+1
berakhir jika
berakhir jika
Berikutnya
jika j = 0 maka
msgbox "Silakan pilih" + nama + "." 'Silakan pilih objek
gfChkCheckbox = salah
fungsi keluar
berakhir jika
jika j = 1 maka
gfChkCheckbox = benar
fungsi keluar
berakhir jika
jika j > 1 maka
jika bendera = 1 maka
msgbox "Hanya satu " + nama + " yang dapat dipilih." 'Hanya satu objek yang dapat dipilih
gfChkCheckbox = salah
fungsi keluar
kalau tidak
gfChkCheckbox = benar
fungsi keluar
berakhir jika
fungsi
akhir jika
akhir3. Dapatkan
nilai
kotak centang Untuk kenyamanan pemrosesan nanti, informasi penting sering kali disimpan dalam atribut nilai kotak centang untuk akses nanti.Program berikut merangkai nilai kotak centang yang dipilih menjadi string menggunakan pemisah "^|^" dan mengembalikannya.
'***************************************************
'<nama fungsi>
'gfGetCheckBoxValue(obj)
'<fungsi>
'Dapatkan nilai Kotak Centang yang dipilih
'<parameter>
' Nama objek Kotak Centang
'<nilai kembalian>
'Nilai Kotak Centang yang dipilih
'<Keterangan>
' Dibuat pada 15 Maret 2004 oleh AITD
'***************************************************
fungsi gfGetCheckBoxValue(obj)
meredupkan strValue
redupkan intCounter
redupkan aku
strValue = ""
intCounter = 0
'Jika objek tidak ada
jika isnull(obj) maka
gfGetCheckBoxValue = strNilai
fungsi keluar
berakhir jika
'Jika bendanya adalah a
jika bukan gfIs_ArrayTest(obj) maka
jika obj.checked = false maka
gfGetCheckBoxValue = strNilai
fungsi keluar
kalau tidak
gfGetCheckBoxValue = objek.nilai
fungsi keluar
berakhir jika
end if
'Jika objeknya banyak
untuk i = 0 hingga obj.length - 1
jika obj(i).checked = true maka
jika intCounter > 0 maka
strValue = strValue & "^|^" & CStr(obj(i).nilai)
kalau tidak
strValue = CStr(obj(i).nilai)
berakhir jika
intCounter = intCounter + 1
berakhir jika
selanjutnya
gfGetCheckBoxValue = strValue
Fungsi akhir
adalah metode pemrosesan kotak centang di VBScript (sesekali digunakan). Fungsi-fungsi ini dapat dienkapsulasi ke dalam file vbs umum dan direferensikan di area tag <head> html untuk menjadikannya universal ~ seperti <head><script Language=vbscript src=vbsChkBoxTool.vbs></script> </ head>
Perhatikan juga bahwa dalam aplikasi sebenarnya, mungkin tidak ada satu catatan pun dalam daftar yang dihasilkan berdasarkan kondisi kueri, artinya, tidak ada kontrol kotak centang. Jika kontrol dengan nama seperti itu masih dipanggil, IE akan Sebuah kesalahan akan dilaporkan. Tidak ada solusi yang baik, jadi saya menulis sebuah program untuk melewati situasi ini tanpa kontrol kotak centang:
function sIsChkBoxExist()
pada kesalahan lanjutkan berikutnya
err.jelas
jika isEmpty(document.frmOrderList.chkOrder) maka
berakhir jika
jika err.number <> 0 maka
kalau tidak
sIsChkBoxExist=benar
berakhir jika
err.jelas
fungsi akhir
, lakukan operasi apa pun pada kontrol yang telah ditentukan, seperti isEmpty. Jika err.number>0 ditangkap, berarti kontrol tersebut tidak ada diminta. Ini juga Ini menentukan apakah kontrol itu ada.
Setiap kali sebelum memanggil ketiga fungsi di atas, panggil fungsi sIsChkBoxExist satu kali untuk melihat apakah kontrol yang sesuai ada, sehingga tidak akan ada kesalahan.