Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengakses ID Komponen JSF dalam JavaScript?

Bagaimana untuk Mengakses ID Komponen JSF dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-27 11:50:12
asal
267 orang telah melayarinya

How to Access JSF Component IDs in JavaScript?

Mengetahui Id Komponen JSF untuk Penggunaan dalam Javascript

Dalam Javascript, fungsi getElementById boleh dimanfaatkan untuk mengakses komponen. Walau bagaimanapun, memandangkan JSF menjana ID komponen secara dinamik, mendapatkan ID komponen adalah penting. Artikel ini meneroka cara untuk mendapatkan semula ID komponen untuk digunakan dalam Javascript.

Pertimbangkan senario berikut di mana kami ingin mengakses komponen inputText melalui kod Javascript:

<h:inputText>
Salin selepas log masuk
function myFunc() {
  // Get the inputText component's contents
  alert("Your email address is: " + document.getElementById("emailAddress").value);
}
Salin selepas log masuk

Menggunakan Dokumen .getElementById dengan Elemen DOM HTML Dijana

Elemen DOM HTML yang dihasilkan mempunyai struktur yang berbeza daripada ID yang anda tentukan dalam JSF. Memeriksa kod yang dijana akan mendedahkan ID yang diberikan. Sebagai contoh, inputText dalam contoh di atas mungkin telah dipaparkan sebagai:

<input type="text">
Salin selepas log masuk

di mana "j_id0:emailAddress" mewakili ID sebenar dalam DOM HTML yang dijana oleh JSF. Oleh itu, untuk merujuk komponen dalam Javascript dengan tepat, gunakan ID yang dijana dan bukannya ID yang ditentukan.

Menetapkan ID Tetap untuk JSF NamingContainers

Sebagai alternatif, anda boleh menetapkan ID tetap kepada JSF NamingContainer komponen, seperti borang, untuk menghalang JSF daripada menjana ID secara automatik. Contohnya:

<h:form>
Salin selepas log masuk

Dengan persediaan ini, ID borang akan ditetapkan sebagai "formId", dan ID inputText ialah "formId:emailAddress", yang kini anda boleh gunakan terus dalam Javascript.

Menggunakan #{Component.clientId} dengan Binding

Teknik yang lebih maju melibatkan penggunaan ungkapan #{component.clientId} bersama-sama dengan pengikatan komponen. Contohnya:

<h:inputText binding="#{emailAddress}" ... />
Salin selepas log masuk
var input = document.getElementById('#{emailAddress.clientId}');
Salin selepas log masuk

Kemas kini:

Penggunaan Terus #{component.clientId}

Artikel blog yang disebut dalam masalah berkaitan terus dengan rujukan #{component}, yang merujuk kepada komponen semasa di mana ungkapan EL dinilai. Untuk mendapatkan ID komponen, gunakan sintaks berikut:

var input = document.getElementById('#{component.clientId}');
Salin selepas log masuk

Meluluskan Elemen DOM HTML sebagai Rujukan "ini"

Pendekatan lain ialah menghantar elemen DOM HTML yang dijana sebagai "ini" merujuk kepada fungsi, membolehkan anda mengakses terus sifat komponen dalam fungsi.

<h:inputText onclick="show(this)" />
Salin selepas log masuk
function show(input) {
  alert(input.value);
}
Salin selepas log masuk

Menggunakan jQuery dan Perwakilan Acara

jQuery menawarkan pilihan yang lebih maju dengan menggunakan perwakilan acara dan kelas gaya untuk mengabstrakkan komponen.

<h:inputText styleClass="someMarkerClass" />
Salin selepas log masuk
$(document).on("click", ".someMarkerClass", function() {
  var $input = $(this);
  alert($input.val());
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengakses ID Komponen JSF dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan