Bagaimana cara mendapatkan nilai id klien dari kontrol ASP.NET melalui javascript di file JS?

pemrograman


Cara mendapatkan nilai id klien dari kontrol asp.net melalui JavaScript dalam file JS di halaman konten dan file JS dirujuk dari halaman yang sama.
Saya bekerja di .net framework 3.5. Saya mengambil nilai id klien seperti di bawah ini
dokumen.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).value;. Saya mendapatkan pengecualian di bawah ini
TypeError Tidak Tertangkap: Tidak dapat membaca properti null (membaca ‘nilai’)

Apa yang saya coba:

Kode seperti di bawah ini

document.getElementById('<%=txtDDAExpiryDate.ClientID%>').value;

Solusi 1

Selalu mulai dengan membaca dokumentasi: Dokumen: metode getElementById() – API Web | MDN[^] – cukup jelas bahwa ia mengembalikan a null ketika elemen dengan ID itu tidak ada:

Mengutip:

Objek Elemen yang mendeskripsikan objek elemen DOM yang cocok dengan ID yang ditentukan, atau null jika tidak ditemukan elemen yang cocok dalam dokumen.

Jadi sekarang Anda perlu tahu apa – tepatnya – txtDDAExpiryDate.ClientID kembali dari server, lalu coba cocokkan secara manual dengan HTML Anda.
Itu akan memberi tahu Anda di mana masalahnya: sisi Server atau sisi Klien.
Dan ketika Anda mengetahuinya, Anda harus bisa menyelesaikannya.

Gunakan debugger (atau tulis saja di halaman) untuk mengetahuinya.

Maaf, kami tidak dapat melakukannya untuk Anda – saatnya Anda mempelajari keterampilan baru (dan sangat, sangat berguna): debugging!

Solusi 2

Karena ID dalam dokumen HTML seharusnya unik, WebForms “menghancurkan” ID kontrol sisi server mana pun dengan menggabungkannya dengan ID setiap “wadah penamaan” dalam hierarkinya.

Jika Anda dapat berpindah ke .NET 4.x, Anda mungkin dapat menggunakan Properti ClientIDMode[^] untuk mengesampingkan perilaku itu.

Jika tidak, Anda harus mencari cara lain untuk mengidentifikasi elemen Anda. Misalnya:

JavaScript
document.querySelector("*[id$='_txtDDAExpiryDate']")

Dokumen: metode querySelector() – API Web | MDN[^]

コメント

タイトルとURLをコピーしました