0 / 0 / 2
Регистрация: 30.09.2012
Сообщений: 111

Javascript не может провести проверку форматированной строки

09.10.2012, 01:05. Показов 1016. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите разобраться, твориться какая-то непонятная ахинея или я просто дико туплю
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function validate_form ( )
{
    valid = true;
    var fname = document.contact_form.description.value;
 
        if ( fname.length < 100 )
        {
                alert ( "Текст записи должен быть длиннее 100 символов!" );
                valid = false;
        }
 
        
 
         if ( fname.length > 9999 )
        {
                alert ( "Текст записи должен быть короче 9999 символов!" );
                valid = false;
        }
 
        
        return valid;
}
вот такой скрипт обработчик, который проверяет на длину строки
HTML5
1
2
3
4
5
6
7
8
9
<form action="zapostil.php" method="post" name="contact_form" onsubmit="return validate_form ( )">
           <label>Заголовок:</label></br>
           <input name="zagolovok" type="text" size="40" maxlength="50"></br>
           <label>Новый пост:
           <textarea name="description" id="elm1" cols="80" rows="30"></textarea>
           </label>
         </p>
         <input type="submit" name="submit" class="button" value="Опубликовать" id="submit">
         </form>
вот, собственно, форма, которая и обрабатывается

в форму в текстареа встроен редактор tiny_mce, перед проверкой на количество символов в строках таким образом
JavaScript
1
2
3
4
5
tinyMCE.init({
mode : "textareas",
theme : "advanced",
elements : "elm1" // тут прописывается название элемента, который мы будем добавлять к текстовому полю.
});
теперь пошли вопросы:
1.Почему, если я вставляю форматированный текст в текстареа у меня проверки php начинают ругаться при любом раскладе. Проверки такие:
PHP
1
if (iconv_strlen($text)>9999 or iconv_strlen($text)<100){header("Location: http://localhost/denwer/new.php?signal='Текст должен содержать не менее 300 и не более 9999 знаков!'"); exit();}
2.Почему когда я нажимаю на кнопку сабмит, у меня ПРИ ЛЮБОМ ТЕКСТЕ В ТЕКСТАРЕА (форматированном (т.е. скопипастеном откуда-то) неформатированном (введенном самому)) начинает ругаться яваскрипт, типо строка слишком короткая?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2012, 01:05
Ответы с готовыми решениями:

Передача форматированной строки в метод
Здравствуйте. Возник вопрос: была программа, метод примерно так выглядел: double TangentSolve(double x0, int &amp;i ,bool print) { ...

Вывод форматированной строки со строго заданной длиной входящих элементов
Раньше в C++ можно было в форматированной строке задать сколько займет выводимое значение в символах. fprintf(fp, &quot;D 0 %-5ld %d...

Через цикл провести проверку
Хочу через цикл проверить все элементы строк на наличие положительного числа в столбце &quot;Количество&quot; на первом листе, и если...

9
Заблокирован
09.10.2012, 04:08
дайте, пожалуйста, ссылку на любой форум/блог, где реализовано подключение редактора tinyMCE для textarea и где не требуется регистрация для написания там чего-то - и я вам сразу же покажу: почему у вас не работает
0
0 / 0 / 2
Регистрация: 30.09.2012
Сообщений: 111
09.10.2012, 04:17  [ТС]
К сожалению, я не знаю где это найти, но вся проблема с пхп упирается в форматированный текст, соответственно, необходимо сделать так, чтобы в текст ареа попадал текст без форматирования, т.е. такой, какой он бывает при обычном наборе? может в тини есть какие-то настройки для этого?
0
Заблокирован
09.10.2012, 05:33
Voprosnik, вы что, никогда нигде не писали САМИ в редакторе tinymce?

в общем, я вам сам дам ссылку - на офсайте tinymce имеется демонстрация возможностей
http://www.tinymce.com/tryit/full.php - и откройте эту ссылку лучше всего в браузере FireFox

нажмите на странице на вкладку View Sourse и там увидите, что mode : "textareas", да и в самом низу строка есть
<textarea name="content" style="width:100%"></textarea>

а теперь вернитесь на View Example и попробуйте мышкой вызвать контекстное меню на этом самом поле ввода (который якобы <textarea>)

не получается?
их меню "гасит" браузерное?

правильно
но ведь я просил вас открыть именно в браузере FireFox
в нём вы можете кликнуть правой кнопкой мыши не по полю ввода, а чуть выше и в браузерном контекстном меню выбрать "Исследовать элемент"
там по html-коду спуститесь вниз и увидите - о, чудо! - форматированный текст вы вставляете не в <textarea>, а в <iframe>, документу в котором скриптом установлено designMode="On"
сам <textarea> всю дорогу стоит "пустой" и только перед самым сабмитом в него передаётся содержимое документа из <iframe>

ваш скрипт прописан непосредственно в теге <form> и имеет приоритет перед прописанной динамически инструкцией от скрипта tinymse - вы проверяете <textarea> и своей проверкой отменяете запланированную скриптом tinymse эту передачу содержимого

поэтому в PHP приходит девственная чистота, длина которой НУЛЬ, что естественно меньше, чем 100
0
0 / 0 / 2
Регистрация: 30.09.2012
Сообщений: 111
09.10.2012, 10:11  [ТС]
ок, убрал яваскрипт проверки, но пхп все равно упорно не хочет адекватно определять длину форматированного текста. Как можно сделать так, чтобы в редактор вставлялся не форматированный текст?
0
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
09.10.2012, 10:33
Voprosnik,
Цитата Сообщение от Voprosnik Посмотреть сообщение
. Как можно сделать так, чтобы в редактор вставлялся не форматированный текст?
Удалять форматирование.
0
0 / 0 / 2
Регистрация: 30.09.2012
Сообщений: 111
09.10.2012, 10:41  [ТС]
Цитата Сообщение от basili4 Посмотреть сообщение
Voprosnik,

Удалять форматирование.
в ручную? дело в том, что вставлять возможно будет пользователь, неужели нет возможности настроить редактор так, чтобы все, что в него попадало не имело форматирования? или может запретить вставку вообще?
0
Заблокирован
09.10.2012, 19:42
Цитата Сообщение от Voprosnik Посмотреть сообщение
Как можно сделать так, чтобы в редактор вставлялся не форматированный текст?
да просто не подключать редактор, вставлять текст просто в textarea

а если серьёзно, то дайте ссылку на свой проект - на "живом" примере можно дать конкретный "живой" совет... а так можно долго теоретизировать...

можно реально просмотреть (хотя бы простым alert'ом) - что находится в ифрейме в процессе редактирования текста сообщения,
и что именно передаётся из ифрейма в textarea перед сабмитом... но "живой" код нужен
0
0 / 0 / 2
Регистрация: 30.09.2012
Сообщений: 111
10.10.2012, 00:24  [ТС]
Цитата Сообщение от Notortep Посмотреть сообщение
да просто не подключать редактор, вставлять текст просто в textarea

а если серьёзно, то дайте ссылку на свой проект - на "живом" примере можно дать конкретный "живой" совет... а так можно долго теоретизировать...

можно реально просмотреть (хотя бы простым alert'ом) - что находится в ифрейме в процессе редактирования текста сообщения,
и что именно передаётся из ифрейма в textarea перед сабмитом... но "живой" код нужен
эх... проект на денвере... а вы не знаете редакторов, которые не сохраняют изначальное форматирование? мне нужно то только подчеркивание, жирный, курсив и все. т.е. минимальный функционал)
0
Заблокирован
10.10.2012, 02:24
Voprosnik, так сделайте сами
делов-то... как два пальца обмочить

зайдите на https://developer.mozilla.org/... in_Mozilla - там скопируйте код самого последнего примера
который под названием Example: a simple but complete Rich Text Editor
выкиньте из него ненужные вам "примочки" - и вперёд, да с песней


обратите внимание на javascript-код в теге <form>
там по onsubmit скрытому <input type="hidden" name="myDoc"> передаётся innerHTML редактируемого <div>'a
именно такую операцию редактора tinymse (только там содержимое ифрейма передавалось прописанному вами <textarea>) вы своим onsubmit'ом отменяли...
здесь всегда можно проверить длину innerHTML этого самого редактируемого <div>'а
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2012, 02:24
Помогаю со студенческими работами здесь

Как провести проверку работоспособности компонентов ПК?
У меня проблема в том, что решил переделать комп, но не хочу тратить лишних денег. Он у меня старенький и сломанный. Какие-то из...

Провести проверку на ошибки при записи масива
В массиве два значение, при INSERT все ключи массива записываются в базу. При UPDATE обновляются все записи вторым ключом. Как провести...

Как можно провести полную проверку HDD дисков на производительность?
Подскажите, как можно провести полную проверку HDD дисков на производительность? Какой софт для этого можно использовать? Прога HDDSkan...

Как в Simulink провести проверку гипотезы по критерию хи квадрат Пирсона
Добрый день. Хотела попросить помощи в таком вопросе. Нужно провести проверку гипотезы по критерию хи квадрат Пирсона. Когда писала...

Как можно упростить javascript проверку на валидность?
Я новичок в javascript, и у меня есть вопрос. У меня есть код с проверкой на валидность заполнение регистрационной формы. Я думал как ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru