Saya ingin tautan ini memiliki dialog JavaScript yang menanyakan pengguna " Apakah Anda yakin? Y / T ”.
<a href="delete.php?id=22">Link</a>
Jika pengguna mengklik "Ya", tautan akan dimuat, jika "Tidak" tidak ada yang terjadi.
Saya tahu bagaimana melakukannya dalam bentuk, menggunakan onclick
menjalankan fungsi yang mengembalikan true
atau false
. Tetapi bagaimana saya melakukan ini dengan <a>
tautan?
javascript
html
dom-events
Christoffer
sumber
sumber
Jawaban:
Penangan event sebaris
Dengan cara yang paling sederhana, Anda dapat menggunakan
confirm()
fungsi ini dalamonclick
penangan inline .Penanganan acara tingkat lanjut
Tetapi biasanya Anda ingin memisahkan HTML dan Javascript Anda , jadi saya sarankan Anda tidak menggunakan penangan event inline, tetapi letakkan kelas di tautan Anda dan tambahkan pendengar acara ke situ.
Contoh ini hanya akan berfungsi di browser modern (untuk IE yang lebih lama Anda dapat menggunakan
attachEvent()
,returnValue
dan memberikan implementasigetElementsByClassName()
atau menggunakan perpustakaan seperti jQuery yang akan membantu masalah lintas-browser). Anda dapat membaca lebih lanjut tentang metode penanganan peristiwa lanjut ini di MDN .jQuery
Saya ingin tinggal jauh dari dianggap sebagai fanboy jQuery, tetapi manipulasi DOM dan penanganan acara adalah dua bidang yang paling membantu perbedaan browser. Hanya untuk bersenang-senang, berikut ini tampilannya dengan jQuery :
sumber
confirm(…)
di inline handler. Saya tidak bisa mereproduksi itu.Saya sarankan menghindari JavaScript sebaris:
Demo JS Fiddle .
Di atas diperbarui untuk mengurangi ruang, meskipun mempertahankan kejelasan / fungsi:
Demo JS Fiddle .
Pembaruan yang agak terlambat, untuk digunakan
addEventListener()
(seperti yang disarankan, oleh bažmegakapa , dalam komentar di bawah):Demo JS Fiddle .
Di atas mengikat fungsi untuk acara setiap tautan individu; yang berpotensi sangat boros, ketika Anda bisa mengikat penanganan acara (menggunakan delegasi) ke elemen leluhur, seperti berikut ini:
Demo JS Fiddle .
Karena penanganan peristiwa melekat pada
body
elemen, yang biasanya berisi sejumlah elemen lain yang dapat diklik, saya telah menggunakan fungsi sementara (actionToFunction
) untuk menentukan apa yang harus dilakukan dengan klik itu. Jika elemen diklik adalah link, dan karena itu memilikitagName
daria
, klik-penanganan dilewatkan kereallySure()
fungsi.Referensi:
addEventListener()
.confirm()
.getElementsByTagName()
.onclick
.if () {}
.sumber
addEventListener
). +1 sekalipun.addEventListener()
model itu.if(check == true)
denganif(check)
.sumber
Anda juga dapat mencoba ini:
sumber
jAplus
Anda dapat melakukannya, tanpa menulis kode JavaScript
Halaman demo
sumber
Metode ini sedikit berbeda dari salah satu jawaban di atas jika Anda melampirkan pengendali acara menggunakan addEventListener (atau attachEvent).
Anda dapat melampirkan penangan ini dengan:
Atau untuk versi internet explorer yang lebih lama:
sumber
window.event
.Hanya untuk bersenang-senang, saya akan menggunakan satu acara di seluruh dokumen daripada menambahkan acara ke semua tag anchor:
Metode ini akan lebih efisien jika Anda memiliki banyak anchor tag. Tentu saja, itu menjadi lebih efisien ketika Anda menambahkan acara ini ke wadah yang memiliki semua tag jangkar.
sumber
Sebagian besar browser tidak menampilkan pesan khusus yang diteruskan ke
confirm()
.Dengan metode ini, Anda dapat menampilkan sembulan dengan pesan khusus jika pengguna Anda mengubah nilainya
<input>
bidang .Anda dapat menerapkan ini hanya untuk beberapa tautan , atau bahkan elemen HTML lainnya di halaman Anda. Cukup tambahkan kelas khusus ke semua tautan yang perlu konfirmasi dan terapkan, gunakan kode berikut:
Coba ubah nilai input pada contoh untuk mendapatkan pratinjau cara kerjanya.
sumber
MENGGUNAKAN PHP, HTML DAN JAVASCRIPT untuk meminta
Hanya jika seseorang mencari menggunakan php, html dan javascript dalam satu file, jawaban di bawah ini berfungsi untuk saya .. saya dilampirkan dengan ikon bootstrap "trash" untuk tautan tersebut.
alasan saya menggunakan kode php di tengah adalah karena saya tidak dapat menggunakannya dari awal ..
kode di bawah ini tidak berfungsi untuk saya: -
dan saya memodifikasinya seperti pada kode 1 maka saya menjalankan apa yang saya butuhkan .. Saya harap saya dapat membantu seseorang menemukan kasus saya.
sumber