ugrás a tartalomhoz

javascript paste karaktercserével

Anonymous · 2006. Okt. 5. (Cs), 09.00
Van egy formon egy sima text mezőm, amibe a felhasználók gyakran másolnak be adatot, xxx xxxxxx xxx formátumban (alkatrészek gyári száma). A gond hogy a bemásolt adatokban elméletileg nem lehetne space, viszont ha kézzel ír be adatot ugyanabba a mezőbe, abban lehet. Körulményes kitörölgetniük a spaceket, ezért arra gondoltam, hogy ha a beillesztés előtt kiveszem a zavaró karaktert, az megkönnyíti az életüket. Tehát el kéne kapnom a ctrl-v-t kivenni a felesleget, és utána beilleszteni.

Nem nagyon tudom hogy álljak neki, esetleg valakinek van tippje?
 
1

sztem utána

amonrpg · 2006. Okt. 5. (Cs), 09.51
szvsz jobban jársz, ha utána csinálod.
mondjuk onchange eseményre akadsz rá, és akkor cseréled.
2

sztem közben

Anonymous · 2006. Okt. 5. (Cs), 10.33
Én csináltam már ilyet, igaz nem space-eket kellett eltávolítani, hanem
számokat kellett pontal 1000-es csoportokra tagolni, de a lényeg az ugyan az. A szövegmező onkeydown és onkeyup eseményéhez rendelsz egy javascript
függvényt.

A fv a következőt csinálja:

1. GetElementById-vel létrehozod a szövegmező objektumát.
2. A tartalmának beállítod a saját tartalmát spacek nélkül.
Erre lehet van függvény, ha nincs akkor írsz rá. Egyszerű,
végigmész a szövegmező tartalmán, és felépítesz belőle egy új
stringet, de a spacek nélkül.
3

nem ez kell sajnos

Anonymous · 2006. Okt. 5. (Cs), 10.52
Köszi, de írtam is, hogy kétféle módon visznek be adatot, vagy copy-paste, vagy beírja kézzel, és csak akkor kell kivenni ha spaceket, ha paste van. Ez lehet bután hangzik, de így van.

(az emailben erkező megrendeléseknél a kuncsaftok szeretik tagolni a gyári számot, amiben eredetileg nincs space, ezek mennek copy-pasteval. De az utánrendeleseket a gyár felé egy "gyáriszám színkód" mintával kell elküldeni, ezt csak kézzel irják be, ebben benne kell maradnia a spacenak. Mindez mellékes de hátha így lesz valakinek ötlete)

Ezért az utólagos ellenőrzés sajnos nem megfelelő.
4

más event?

Anonymous · 2006. Okt. 5. (Cs), 10.59
Onchange és/vagy onblur ellenőrzés miért nem jó?

MSIE alatt úgy tudom, van onpaste, meg onbeforepaste, meg ilyesmi, de ez más böngészőkben nemigen található meg.

Nem jó, ha onsubmitnál pucolod ki a mezőket?
5

Nem még mindíg nem :)

Anonymous · 2006. Okt. 5. (Cs), 12.02
Hát nemtudom hogy írjam körül jobban a problémát de nem jó. Az onbeforepaste biztatóan hangzik, de sajna firefoxot használnak.
6

hát akkor...

amonrpg · 2006. Okt. 5. (Cs), 14.52
Sajna akkor javaslom a külön gombocskát a műveletre... :D
Esetleg beteheted, hogy rögtön a gomb paste-zi be az adatot... csak azt mondjuk azt hiszem engedélyezni kell FF-ben külön. (Ebben nem vagyok biztos, utána kell nézni)
7

Az sem jó :)

Anonymous · 2006. Okt. 5. (Cs), 16.11
A külon gomb sem jó sajnos, hiszen az egész célja könnyíteni a bevitelt. Atmenetileg amíg jobbat nem találok ki, valami ilyesmit fogok használni:

function startPaste()
{
	document.getElementById( 'search').onkeyup = function()
	{
		newTextLength = this.value.length;
		currentTextLength = currentText.length;

		if( newTextLength > ( currentTextLength + 3))
		{
			this.value = replace( this.value, " ", ""); 
			currentText = this.value;
		}
		currentText = this.value;
	}
}
Ezzel nyilván vannak bajok, pl paste után a már bevitt szövegben is cserél, de ez most nem számít.

Mindenesetre köszi a segítséget.
8

miért kliens oldalon

zsepi · 2006. Okt. 5. (Cs), 16.16
Miért nem szerver oldalon tisztítod?