Проверка ппеременной в javascript

SEoSashok
На сайте с 16.07.2012
Offline
25
723

Доброе утро всем.

Есть код javascript отправки формы на почту, в нем, перед отправкой почты, хотелось бы сделать проверку на заполнение одного обязательного поля. Делаю проверку, но ничего не получается, работает не правильно...

<script type="text/javascript">
function send() {
var name = $('#name').val();
var phone = $('#phone').val();
var sity = $('#sity').val();
if(phone.var) == undefined) {
document.getElementById('nomsg').style.display = 'block';
}
else {
document.getElementById('msg').style.display = 'block';
$.ajax({
type: "POST",
url: "<?php bloginfo('template_directory'); ?>/send.php",
data: {'name' : name, 'phone' : phone, 'sity' : sity},
});
};
};
</script>
T
На сайте с 19.09.2012
Offline
29
#1

попробуйте поправить

if(phone.var) == undefined)

это по сути ошибочно, можно заменить на

if(typeof(phone) == "undefined")

но скорее всего по смыслу попробуйте проверять на пустую строку, т.е.:

if (phone == "")

если тут уже загружен и используется JQuery, то

document.getElementById('nomsg').style.display = 'block';

можно заменить на

$("#nomsg").show();

и скорее всего по смыслу добавить

$("#msg").hide();

document.getElementById('msg').style.display = 'block';

также можно поменять на

$("#msg").show();

и по смыслу напрашивается

$("#nomsg").hide();

в конце тут зачем запятая?

data: {'name' : name, 'phone' : phone, 'sity' : sity},

SEoSashok
На сайте с 16.07.2012
Offline
25
#2
turen:

$("#nomsg").show();
и скорее всего по смыслу добавить
$("#msg").hide();

$("#msg").show();
и по смыслу напрашивается
$("#nomsg").hide();


в конце тут зачем запятая?
data: {'name' : name, 'phone' : phone, 'sity' : sity},

Спасибо за hide и show, работает по смыслу задуманного) Запятую убрал, проглядел как-то.

До этого ответа сам пробовал различные условия и заработало вот так -

if (!phone){...}

и

if (phone){...}

Так получается тоже можно проверять переменную? Или лучше твоим способом?

T
На сайте с 19.09.2012
Offline
29
#3

проверять на пустоту я имел ввиду сравнивать с пустой строкой, т.к. .val() в JQuery вряд ли вернет уж совсем undefined, скорее вернет пустую строку - ну как минимум для текстового поля...

if (phone == "") { ... }

или даже например

if (phone.length < 7) { ... } (думаю, смысл понятен)

SEoSashok
На сайте с 16.07.2012
Offline
25
#4

turen, Да понятно. Еще раз спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий