Saya mencari cara untuk membersihkan input yang saya rekatkan ke browser, apakah ini mungkin dilakukan dengan jQuery?
Saya sudah berhasil sampai sejauh ini:
$(this).live(pasteEventName, function(e) {
// this is where i would like to sanitize my input
return false;
}
Sayangnya perkembangan saya menjadi melengking karena masalah "kecil" ini. Saya benar-benar akan membuat saya kemping bahagia jika seseorang bisa mengarahkan saya ke arah yang benar.
Jawaban:
OK, hanya bertemu dengan masalah yang sama .. Saya pergi jauh
Hanya batas waktu kecil hingga .val () func dapat diisi.
E.
sumber
Anda benar-benar dapat mengambil nilai langsung dari acara tersebut . Ini agak tumpul bagaimana untuk sampai ke sana.
Kembalikan salah jika Anda tidak ingin melewatinya.
sumber
e.clipboardData.getData('text')
dalam JavaScript biasa.Untuk kompatibilitas lintas platform, harus menangani peristiwa input dan pertukaran properti:
sumber
Saya semacam memperbaikinya dengan menggunakan kode berikut:
Sekarang saya hanya perlu menyimpan lokasi tanda sisipan dan menambahkan ke posisi itu maka saya sudah siap ... saya pikir :)
sumber
.find(':focus')
, dan mengetahui bahwa elemen menentukan lokasi tanda sisipan untuknya. Lihat ini .input
membuat perbedaan :) Saya biasanya memiliki ini di acara kotak teks sayakeyup keydown paste input
tetapi jelas tergantung apa motif AndaHmm ... aku pikir Anda bisa menggunakan
e.clipboardData
untuk menangkap data yang disisipkan. Jika tidak berhasil, lihat di sini .sumber
Dengarkan acara tempel dan atur pendengar acara keyup. Pada keyup, ambil nilainya dan hapus pendengar acara keyup.
sumber
Ini akan bekerja dengan baik.
sumber
Ini semakin dekat dengan apa yang Anda inginkan.
Harap dicatat bahwa ketika objek clipboardData tidak ditemukan (di browser selain IE), Anda saat ini mendapatkan nilai penuh elemen + nilai clipboard'ed.
Anda mungkin dapat melakukan beberapa langkah tambahan untuk membedakan kedua nilai, sebelum input & setelah input, jika Anda benar-benar hanya setelah data apa yang benar-benar ditempelkan ke dalam elemen.
sumber
Ini akan berfungsi untuk acara tempel mouse.
sumber
Bagaimana dengan membandingkan nilai asli bidang dan nilai bidang yang diubah dan mengurangi perbedaan sebagai nilai yang ditempelkan? Ini menangkap teks yang disisipkan dengan benar bahkan jika ada teks yang ada di lapangan.
http://jsfiddle.net/6b7sK/
sumber
Kode ini berfungsi untuk saya, tempel dari klik kanan atau salin tempel langsung
Ketika saya tempel
Section 1: Labour Cost
itu menjadi1
dalam kotak teks.Untuk mengizinkan hanya nilai float, saya menggunakan kode ini
sumber
Lebih lanjut:
sumber
Lihat contoh ini: http://www.p2e.dk/diverse/detectPaste.htm
Ini penting melacak setiap perubahan dengan peristiwa input dan kemudian memeriksa apakah itu tempel dengan perbandingan string. Oh, dan di IE ada acara onpaste. Begitu:
sumber
Metode ini menggunakan konten jqueries (). Unwrap ().
Setelah batas waktu tertentu, pindai semua konten yang membuka tag yang tidak memiliki kelas yang Anda atur sebelumnya. Catatan: Metode ini tidak menghapus tag penutup sendiri seperti
Lihat contoh di bawah ini.
sumber
Ini terbukti sangat ilusi. Nilai input tidak diperbarui sebelum eksekusi kode di dalam fungsi tempel acara. Saya mencoba memanggil acara lain dari dalam fungsi tempel acara, tetapi nilai input masih belum diperbarui dengan teks yang disisipkan di dalam fungsi acara apa pun. Itu semua peristiwa terlepas dari keyup. Jika Anda memanggil keyup dari dalam fungsi tempel acara, Anda dapat membersihkan teks yang disisipkan dari dalam fungsi event keyup. seperti itu ...
Ada satu peringatan di sini. Di Firefox, jika Anda mengatur ulang teks input pada setiap keyup, jika teks lebih panjang dari area yang dapat dilihat yang diizinkan oleh lebar input, maka mengatur ulang nilai pada setiap keyup akan merusak fungsionalitas browser yang secara otomatis menggulirkan teks ke posisi caret di akhir teks. Alih-alih, teks bergulir kembali ke awal meninggalkan tanda sisipan.
sumber
Skrip untuk menghapus karakter khusus dari semua bidang dengan kelas portlet-form-input-field:
sumber
sumber