Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   подскажите как изменить скрипт, вывести текст на странице а не через модальное окно. (https://javascript.ru/forum/misc/22298-podskazhite-kak-izmenit-skript-vyvesti-tekst-na-stranice-ne-cherez-modalnoe-okno.html)

rav 14.10.2011 01:49

подскажите как изменить скрипт, вывести текст на странице а не через модальное окно.
 
здравствуйте
подскажите пожалуйста как можно заменить alert, чтобы вместо модального окна с текстом и кнопкой "ок", появлялся этот-же текст на странице (в определённом месте)
(нужно это для проверки введённых пользователем данных, и в какой-то степени похоже на сообщения которые появляются в Gmail при неправильном заполнении логина или пароля, под полями ввода)

вот эта часть кода которая выводит это окно
if(!return_value)
alert(error_msg);
return return_value;
мои догадки как это сделать: если бы как-то заменить alert, на что-нибудь для вывода текста на страницу, и по id выводить его в определённом месте. но как это сделать не знаю.

буду благодарен за любую помощь!

systemiv 14.10.2011 02:20

document.write('text');

rav 14.10.2011 02:28

Цитата:

Сообщение от systemiv (Сообщение 131117)
document.write('text');

спасибо что откликнулись!
я так пробовал, и вместо модального окна с текстом, появлялся нужный текст на пустой странице, и она вроде грузилась все время.

может вы знаете как сделать чтоб не на пустой, а на той же где и форма?

yashka525 14.10.2011 03:14

Цитата:

Сообщение от rav
появлялся нужный текст на пустой странице, и она вроде грузилась все время.

Посмотрите в Developer Tool, может ошибка где.

rav 14.10.2011 03:41

вот код, думаю для вас и без Developer Tool будет всё понятно, я даже и комменты не убирал, и не переделывал, такой какой скачал, там без моих изменений всё работает, но нужно чтобы вместо модального окна, текст выводился на этой же странице.
<script type="text/javascript"><!--
function checkForm(obj){
var return_value = true;
// заносим значение поля почтовый ящик в переменную mail
var mail = obj.email.value;
// заносим значение поля отправитель в переменную sender
var sender = obj.name.value;
// заносим значение поля сообщение в переменную msg
var msg = obj.mess.value;
// регулярное выражение для проверки почтового ящика
var reg_mail = /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
// регулярное выражение для проверки отправителя
var reg_sender = /[a-z]+/i;
// объявляем переменную, куда будет заноситься текст сообщения об ошибке
var error_msg = "Некорректно заполнены поля: ";
//проверка поля отправитель
if(reg_sender.exec(sender) == null && sender ==""){
error_msg += "Ваше имя ";
return_value = false;
}
//проверка поля почтовый ящик
if(reg_mail.exec(mail) == null){
error_msg += "Ваш e-mail ";
return_value = false;
}
//проверка поля текст сообщения
if(msg == ""){
error_msg += "Ваше сообщение ";
return_value = false;
}
//проверка на наличие ошибок, если возникла ошибка, выводим текст сообщения
if(!return_value)
alert(error_msg);
return return_value;
}//-->
</script>

вместо alert(error_msg); писал document.write(error_msg); вот и получалось так как написал выше. но ведь, на сколько я понимаю, текст ещё нужно вывести в определённом месте на странице, может если бы это сделать всё бы работало, во общем я не знаю как сделать, поэтому и спрашиваю. (javascript не знаю, только на уровне немного подправить под себя чей-то скрипт) помощь нужна очень
большое спасибо за отклики, тем более в такое время

yashka525 14.10.2011 03:46

Окей, около формы (или где там хотите) создаете div с любым id (можно <div id="error"></div>), и в место alert(error_msg); пишите document.getElementById('error').innerHTML = error_msg;. Всех делов-то :D

P.S. Не забудьте скрипт расположить ниже form, иначе все сломается.

rav 14.10.2011 04:25

да уж :)
я предполагал что это просто переделать, но уже пару дней ни сам ни в интернете ничего не мог сделать/нагуглить

сделал как вы сказали - работает! (только я сначала расположил не ниже form, и всё равно работает)

если вам не трудно не могли бы вы мне объяснить:
*почему нужно размещать этот javascript ниже form-ы? (обычно его же в хедере размещают)
*и на счёт getElementById, я английский язык знаю не на много больше чем javascript, но всё же уже насторожился :)
что это может означать? (кстати нашёл на этом форуме вот)
Цитата:

Сообщение от e-do (Сообщение 130757)
aiky, не, это не подходит, кстати посмотрите вот это про getElementById http://www.factsandpeople.com/facts-...getelementbyid


yashka525 14.10.2011 04:34

1. Иногда элементы, к которым мы обращаемся, загружаются медленнее, чем скрипт. По этому скрипт не находит нужный элемент и работает не корректно, выдавая ошибку. Это относится не только к form, но и ко всем остальным элементам.
2. Если уж опасаться того, что описано по той линке, то div можно сделать не пустым, вставив в него <span></span> например...

rav 14.10.2011 04:45

1. а где именно? сразу после </form>
2. я по замыслу так собирался: <div id="error">&nbsp;</div> (для дизайна нужно), это же по смыслу что же самое? прокатит?

yashka525 14.10.2011 04:48

1. Где хотите, главное чтоб было после <div id="error">... Можно и после </form>, можно перед </body>. Где удобно.
2. Ога.


Часовой пояс GMT +3, время: 07:59.