O webu
Onpaste – vložení ze schránky

U formulářových polí <input>/<textarea>, kde je reálné očekávat, že bude člověk vkládat ze schránky, se hodí toto vložení odchytit. Uživatelé některé údaje kopírují, takže vložení lze současně chápat jako pokyn k validaci.

<input onpaste="vlozeno()">

V novějších prohlížečích (IE 9+) jde místo onpaste použít universálnější událost oninput, která se při vložení ze schránky (Ctrl + V) rovněž vyvolá, ale není z ní přímo patrné, že se jedná o vložení.

Prodleva onpaste

Trošku záludné je chování onpaste v tom, že se událost provede předtím, než se obsah vloží do políčka. Následující kód tedy zobrazí po vložení předchozí hodnotu, což je většinou nežádoucí.

<input onpaste="alert(this.value)">

Řešení je práci s hodnotou pole obalit do časovače.

<input onpaste="
  var that = this;
  setTimeout(function(){
    alert(that.value)
  }, 0)
">

Výsledek:

Vzhledem ke složitějšímu programování uvnitř atributu se nabízí obsluhu pro vložení vytvořit jako samostatnou funkci a v atributu ji pouze zavolat – onpaste="vlozit(this)". Pozměněná ukázka se stejnou funkčností: