Autor Zpráva
nat
Profil *
Zdravím,

stáhnul jsem si javascriptovou křížovku, která jde krásně upravit, ale řeším problém s psaním českých znaků. Dle mého názoru se o psaní znaků po stisknutí klávesy stará tento kód:


oyCrosswordPuzzle.prototype.handleKeyPress=function(x,y,e){ 
	if(!e){ 
		e=window.event; 
	} 
	var _64=(e.which)?e.which:e.keyCode; 
	var c=String.fromCharCode(_64).toUpperCase(); 
	if(_64==32){ 
		c=" "; 
	} 
	if(this.isValidChar(c)){ 
		var _66=this.inputCache.getElement(x,y); 
		if(!_66.readOnly){ 
			_66.value=c.toUpperCase(); 
		} 
		this.moveToNextCell(x,y); 
	} 
	return false; 
};



Najde se někdo, kdo by věděl, jak tam vsunout podporu pro české znaky (ě š č ř ž ý á í é ó ů ú).

V javascriptu jsem velmi mírně pokročilý. Předem děkuji za odpověď..

Nat
nat
Profil *
Ještě k tomu asi patří i kus tohoto kódu...


oyCrosswordPuzzle.prototype.isValidChar=function(c){ 
	return (c>="A"&&c<="Z")||c==" "; 
}; 

nat
Profil *
Na něco už jsem přišel, pokud by měl někdo lepší ideu sem s ní. Moje řešení je takové:


oyCrosswordPuzzle.prototype.isValidChar=function(c){ 
	return (c>="A"&&c<="Z")||c==" "||c=="Ě"||c=="Š"||c=="Č"||c=="Ř"||c=="Ž" atd...; 
};


los
Profil *
Na otestovanie toho, či je nejaký znak písmenkom, môžeš využiť to, že funkcie toUpperCase a toLowerCase pracujú aj s národnými znakmi.

Takže napr. nejako takto:
oyCrosswordPuzzle.prototype.isValidChar = function(c) {
return c.toUpperCase() != c.toLowerCase();
};

btw 1: Pre aký prípad tam je if(_64==32) c=" "? Keď je splnená táto podmienka, tak v premennej c už tá medzera predsa musí byť. Podobne pri priradení hodnoty c do _66.value je tam volanie toUpperCase navyše, pretože už sa to raz predtým volalo.
peta
Profil
nat
cyklus prochazejici pole?
jakpsatweb - javascript - cyklus
var x,y,i;
c = "Š";
x = "ESCRĚŠČŘ".split("");
y = false;
for(i in x) {if (x[i]==c) {y=true;break;}}
alert(y);

http://www.volny.cz/peter.mlich/hry/
* osm.htm
http://lusk.cz
Nat
Profil *
to los

tvůj kód funguje skvěle, navrhnu jej tvůrci jako vylepšení pro jiné jazyky. Add otázka k té mezeře. Bohužel netuším, ten kód má celkem asi 1300 řádků toto je jen výsek a je možné, že je to potřeba jinde.

Každopádně děkuji i petovi za ponaučení o cyklu,

Hezké svátky Nat

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: