подскажите как изменить скрипт, вывести текст на странице а не через модальное окно.
здравствуйте
подскажите пожалуйста как можно заменить alert, чтобы вместо модального окна с текстом и кнопкой "ок", появлялся этот-же текст на странице (в определённом месте) (нужно это для проверки введённых пользователем данных, и в какой-то степени похоже на сообщения которые появляются в Gmail при неправильном заполнении логина или пароля, под полями ввода) вот эта часть кода которая выводит это окно if(!return_value) alert(error_msg); return return_value;мои догадки как это сделать: если бы как-то заменить alert, на что-нибудь для вывода текста на страницу, и по id выводить его в определённом месте. но как это сделать не знаю. буду благодарен за любую помощь! |
document.write('text');
|
Цитата:
я так пробовал, и вместо модального окна с текстом, появлялся нужный текст на пустой странице, и она вроде грузилась все время. может вы знаете как сделать чтоб не на пустой, а на той же где и форма? |
Цитата:
|
вот код, думаю для вас и без 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 не знаю, только на уровне немного подправить под себя чей-то скрипт) помощь нужна очень большое спасибо за отклики, тем более в такое время |
Окей, около формы (или где там хотите) создаете div с любым id (можно <div id="error"></div>), и в место alert(error_msg); пишите document.getElementById('error').innerHTML = error_msg;. Всех делов-то :D
P.S. Не забудьте скрипт расположить ниже form, иначе все сломается. |
да уж :)
я предполагал что это просто переделать, но уже пару дней ни сам ни в интернете ничего не мог сделать/нагуглить сделал как вы сказали - работает! (только я сначала расположил не ниже form, и всё равно работает) если вам не трудно не могли бы вы мне объяснить: *почему нужно размещать этот javascript ниже form-ы? (обычно его же в хедере размещают) *и на счёт getElementById, я английский язык знаю не на много больше чем javascript, но всё же уже насторожился :) что это может означать? (кстати нашёл на этом форуме вот) Цитата:
|
1. Иногда элементы, к которым мы обращаемся, загружаются медленнее, чем скрипт. По этому скрипт не находит нужный элемент и работает не корректно, выдавая ошибку. Это относится не только к form, но и ко всем остальным элементам.
2. Если уж опасаться того, что описано по той линке, то div можно сделать не пустым, вставив в него <span></span> например... |
1. а где именно? сразу после </form>
2. я по замыслу так собирался: <div id="error"> </div> (для дизайна нужно), это же по смыслу что же самое? прокатит? |
1. Где хотите, главное чтоб было после <div id="error">... Можно и после </form>, можно перед </body>. Где удобно.
2. Ога. |
Часовой пояс GMT +3, время: 22:28. |