Добрый день!
Создал html-страницу на сайте. Затем разместил на этой странице форму обратной связи. Осталось только разместить обработчик созданной формы. В материале, от которого я отталкиваюсь при создании формы, сказано следующее: Для этого перед закрывающимся тегом вставьте следующий скрипт:. Только, не понимаю, о каком именно закрывающем тэге идёт речь: </div>, </body>, </html>, </form>?
При всех вариантах возникает одна и та же ошибка. Открывающий тэг <script> - как и положено красного цвета. А вот закрывающий тэг </script> - уже синего цвета. То есть скрипт не работает.
А Adobe Dreamweaver показывает синтаксическую ошибку в строке: var reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>
Весь скрипт - обработчик формы выглядит так:
<script type="text/javascript">
function validateEmail(email) {
var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reg.test(email);
}
$(document).ready(function() {
$(".modalbox").fancybox();
$("#contact").submit(function() { return false; });
$("#send").on("click", function(){
var emailval = $("#email").val();
var namevl = $("#name").val();
var phonevl = $("#phone").val();
var msgval = $("#msg").val();
var msglen = msgval.length;
var mailvalid = validateEmail(emailval);
if(mailvalid == false) {
$("#email").addClass("error");
}
else if(mailvalid == true){
$("#email").removeClass("error");
}
if(mailvalid == false) {
$("#name").addClass("error");
}
else if(mailvalid == true){
$("#name").removeClass("error");
}
if(mailvalid == false) {
$("#phone").addClass("error");
}
else if(mailvalid == true){
$("#phone").removeClass("error");
}
if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}
if(mailvalid == true && msglen >= 4) {
// если обе проверки пройдены
// сначала мы скрываем кнопку отправки
$("#send").replaceWith("<em>отправка...</em>");
$.ajax({
type: 'POST',
url: 'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact").fadeOut("fast", function(){
$(this).before("<p><strong>Успешно! Ваше сообщение отправлено </strong></p>");
setTimeout("$.fancybox.close()", 1000);
});
}
}
});
}
});
});
</script>
Что я не так делаю? Объясните, пожалуйста.
Создал html-страницу на сайте. Затем разместил на этой странице форму обратной связи. Осталось только разместить обработчик созданной формы. В материале, от которого я отталкиваюсь при создании формы, сказано следующее: Для этого перед закрывающимся тегом вставьте следующий скрипт:. Только, не понимаю, о каком именно закрывающем тэге идёт речь: </div>, </body>, </html>, </form>?
При всех вариантах возникает одна и та же ошибка. Открывающий тэг <script> - как и положено красного цвета. А вот закрывающий тэг </script> - уже синего цвета. То есть скрипт не работает.
А Adobe Dreamweaver показывает синтаксическую ошибку в строке: var reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>
Весь скрипт - обработчик формы выглядит так:
<script type="text/javascript">
function validateEmail(email) {
var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reg.test(email);
}
$(document).ready(function() {
$(".modalbox").fancybox();
$("#contact").submit(function() { return false; });
$("#send").on("click", function(){
var emailval = $("#email").val();
var namevl = $("#name").val();
var phonevl = $("#phone").val();
var msgval = $("#msg").val();
var msglen = msgval.length;
var mailvalid = validateEmail(emailval);
if(mailvalid == false) {
$("#email").addClass("error");
}
else if(mailvalid == true){
$("#email").removeClass("error");
}
if(mailvalid == false) {
$("#name").addClass("error");
}
else if(mailvalid == true){
$("#name").removeClass("error");
}
if(mailvalid == false) {
$("#phone").addClass("error");
}
else if(mailvalid == true){
$("#phone").removeClass("error");
}
if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}
if(mailvalid == true && msglen >= 4) {
// если обе проверки пройдены
// сначала мы скрываем кнопку отправки
$("#send").replaceWith("<em>отправка...</em>");
$.ajax({
type: 'POST',
url: 'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact").fadeOut("fast", function(){
$(this).before("<p><strong>Успешно! Ваше сообщение отправлено </strong></p>");
setTimeout("$.fancybox.close()", 1000);
});
}
}
});
}
});
});
</script>
Что я не так делаю? Объясните, пожалуйста.