Autor Zpráva
jiones
Profil *
Ahoj,
nevím, zda je to podstatné, používám následující plugin do jquery - http://bassistance.de/jquery-plugins/jquery-plugin-validation/. Mám udělaný formulář na změnu dat uživatele, některé položky jsou povinné, atd.

Problém je s heslem (teď má required, minlength), s nímž mám následující záměry:
- není-li vyplněno, zůstane stejné
- je-li vyplněno, minimální délka 5 znaků (minlength: 5) - tato kontrola funguje, upozorňuje na kratší heslo
- je-li vyplněno a shoduje-li se s polem pod ním (heslo znovu - "equalTo"), změní se v DB - toto funguje, jsou-li hesla delší než 4 znaky a jsou-li shodná

Jak tam ale zanést podmínku ve znění "je-li délka hesla == 0, formulář pusť dál", abych splnil i první podmínku?
Chamurappi
Profil
Reaguji na jionese:
Nenašel jsem v dokumentaci, kam se píše test na kontrolu podle regulárního výrazu. Jestli to najdeš, zadej tam /^(.{5,})?$/ — tím pokryješ i nepovinnost, i minlength.
jiones
Profil *
Chamurappi:
moc ti děkuji Chamurappi alespoň za ten regulární výraz - na ten bych v životě nemohl přijít.

Kdyby se to hodilo ještě někomu, řešení je popsáno na http://stackoverflow.com/questions/280759/jquery-validate-how-to-add-a-rule-for-regular-expression-validation#1217344.
jiones
Profil *
Chamurappi:
tvůj regulár funguje, přesto myslím, že bych jej rád pochopil :-)

. - libovolný znak
{5,} - 5 a více znaků

Kde je napsáno, že tam nemusí být žádný znak? Nějak mi to nejde do hlavy, přestože to funguje výborně...
Chamurappi
Profil
Reaguji na jionese:
Kde je napsáno, že tam nemusí být žádný znak?
Je to v závorce a za ní je otazník, který se vztahuje k tomu, co je před ním, a značí volitelnost. Takže vyhovuje buď pět a více znaků, nebo nic.
Ještě doplním, že „^“ a „$“ značí začátek a konec řetězce.

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:

0