Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
19.05.2006, 15:21 | #11 |
Новенький
Регистрация: 08.05.2006
Сообщений: 5
|
Впринципе я пока обхожусь такми решением:
В файле typo3/sysext/cms/tslib/class.tslib_content.php, формируется текст обработчика события onsubmit() формы так (строка 2027): Код:
//$validateForm=' onsubmit="return validateForm(\''.$formname.'\',\''.implode(',',$fieldlist).'\','.t3lib_div::quoteJSvalue($conf['goodMess']).','.t3lib_div::quoteJSvalue($conf['badMess']).','.t3lib_div::quoteJSvalue($conf['emailMess']).')"'; $validateForm=' onsubmit="return validateForm(\''.$formname.'\',\''.rawurldecode(implode(',',$fieldlist)).'\','.t3lib_div::quoteJSvalue($conf['goodMess']).','.t3lib_div::quoteJSvalue($conf['badMess']).','.t3lib_div::quoteJSvalue($conf['emailMess']).')"'; Примечание, нельзя использовать символ `"` и `,` в метке поля. (ну и не надо) Последний раз редактировалось kit; 19.05.2006 в 15:35 |
19.05.2006, 16:04 | #12 |
Новенький
Регистрация: 08.05.2006
Сообщений: 5
|
решение проблемы
В javascript есть функция decodeURI() - она умеет декодить utf-8 строку, закодированную rawurlencoded()
Так что можно не трогать typo3/sysext/cms/tslib/class.tslib_content.php, а поправить файл t3lib/jsfunc.validateform.js Код:
function validateForm(theFormname,theFieldlist,goodMess,badMess,emailMess) { var formObject = document[theFormname]; theFieldlist = decodeURI(theFieldlist); // добавленная строка if (!formObj............ Последний раз редактировалось kit; 19.05.2006 в 16:13 |
21.05.2006, 12:50 | #13 |
Administrator
|
да решение работает. Большое спасиб!!
Я запостил в баг-треккер http://bugs.typo3.org/view.php?id=3527 |
22.05.2006, 08:36 | #14 |
Новенький
Регистрация: 08.05.2006
Сообщений: 5
|
еще одна проблема
В t3lib/jsfunc.validateform.js есть еще одна проблемма, которая
проявляется в TYPO3 4.0. Когда в форме ставишь "обязательное поле", например "Email: | *_EMAIL=input,40", то проверка правильности _EMAIL тоже не работает. Найдите в файле t3lib/jsfunc.validateform.js блок (в оригинале номер строки 57): Код:
if (specialMode) { //index++; // <-- закомментируйте эту строку theField = split(theFieldlist, ",", index); } Файл jsfunc.validateform.js с исправлениями jsfunc.validateform.zip Последний раз редактировалось kit; 22.05.2006 в 08:41 |