Непонятное завершение функции
Добрый день, есть код, из функции проверки заполнения полей:
function check_vendor_new_user(){
var checkboxes = $('.svuf_checkbox');
var checkbox_checked = 0;
for (var i in checkboxes) {
if (checkboxes[i].checked) checkbox_checked = 1;
}
var lvalue = document.send_vendor_user_form.logname.value;
log_checked = check_vendor_user_login(lvalue);
...
почему-то функция завершается, возвращая труе на строчке: var lvalue = document.send_vendor_user_form.logname.value; Подскажите пожалуйста, где искать зарытую собаку? :) |
culver, у меня плохая новость, строчка
var lvalue = document.send_vendor_user_form.logname.value; не возвращает значения функции, а создает переменную и устанавливает ей значение |
Вот именно, я не понимаю почему при пошаговом выполнении функция завершается при переходе на эту строку? Этого не должно быть.
В чём могут быть ещё проблемы? |
Заменил эту строку на:
var lvalue = $('#login').val();
и глюк пропал. JQuery это, конечно, прекрасно, но знать чистый JS тоже хочется. Подскажите пожалуйста что это было? |
Вот функция, теперь такой глюк выскакивает на последнем ифе.
function check_vendor_new_user(){
var checkboxes = $('.svuf_checkbox');
var checkbox_checked = 0;
for (var i in checkboxes) {
if (checkboxes[i].checked) checkbox_checked = 1;
}
var lvalue = $('#login').val();
log_checked = check_vendor_user_login(lvalue);
if (!log_checked) {
alert('Please, choose another login.');
return false;
}
if( document.send_vendor_user_form.company.value &&
document.send_vendor_user_form.home_page.value &&
(document.send_vendor_user_form.radioSet[0].checked || document.send_vendor_user_form.radioSet[1].checked || document.send_vendor_user_form.radioSet[2].checked) &&
document.send_vendor_user_form.position.value &&
document.send_vendor_user_form.name.value &&
document.send_vendor_user_form.second_name.value &&
document.send_vendor_user_form.email.value &&
document.send_vendor_user_form.phone1.value &&
document.send_vendor_user_form.phone2.value &&
document.send_vendor_user_form.country.value &&
document.send_vendor_user_form.state.value &&
document.send_vendor_user_form.city.value &&
document.send_vendor_user_form.zip.value &&
document.send_vendor_user_form.adres.value &&
document.send_vendor_user_form.pas.value &&
checkbox_checked){
return true;
} else {
alert('Please fill all * fields correctly.');
return false;
}
}
|
Может ли проблема быть в коде страницы или в других скриптах, которые используются на этой странице? Где нужно искать перехват? Как функция может завершаться при сравнении значений элементов?
|
Ну в первом случае return не стояло, а во втором случае (в последнем ифе) завершается при наличии пустых полей. Поэтому мне и кажется, что завершается при обращении к элементу, что есть бредом, но другого объяснения я не вижу.
|
выполняю функцию пошагово с помощью Firebug в firefox, а так как форма отправляется на сервер, то функция возвращает true.
<form style="padding:0px;margin:0px;" method="post" name="send_vendor_user_form" onsubmit="return check_vendor_new_user();" action="./vendor_edit_user.php"> |
Если вставляю alert в последнем ифе перед return true, то до его выполнения функция не доходит.
|
до проверки ифа. Сейчас в Опере проверяю - та же картина.
|
Странное дело, в Firebug провожу мышкой над строкой
document.send_vendor_user_form.company.valueи при проведении над словом company выскакивает подсказка "undefined". Хотя в форме такое поле есть:
<form style="padding:0px;margin:0px;" method="post" name="send_vendor_user_form" onsubmit="return check_vendor_new_user();" action="./vendor_edit_user.php">
<input type="Hidden" name="product_id" value="{$product}">
<input type="Hidden" name="edit" value="0">
<input type="Hidden" name="new" value="1">
<table cellpadding="1" cellspacing="8" border="0">
<tr>
<td class="tit">{$labels[10]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="{$profile.Company}" type="text" class="textinput-3" name="company" size="12" />
</div>
</div>
</div>
</td>
</tr>
|
Вот вся форма:
<form style="padding:0px;margin:0px;" method="post" name="send_vendor_user_form" onsubmit="return check_vendor_new_user();" action="./vendor_edit_user.php">
<input type="Hidden" name="product_id" value="{$product}">
<input type="Hidden" name="edit" value="0">
<input type="Hidden" name="new" value="1">
<table cellpadding="1" cellspacing="8" border="0">
<tr>
<td class="tit">{$labels[10]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="{$profile.Company}" type="text" class="textinput-3" name="company" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit">{$labels[11]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="{$profile.www}" type="text" class="textinput-3" name="home_page" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit"></td>
<td>
<input {if $profile.Mtype == 'Mr'}checked{/if} type="radio" name="radioSet" id="option1" value="Mr" />
<label class="chek-title1" for="option1">{$labels[12]}</label>
<input {if $profile.Mtype == 'Mrs'}checked{/if} type="radio" name="radioSet" id="option2" value="Mrs" />
<label class="chek-title1" for="option2">{$labels[13]}</label>
<input {if $profile.Mtype == 'Ms'}checked{/if} type="radio" name="radioSet" id="option3" value="Ms" />
<label class="chek-title1" for="option3">{$labels[14]}</label>
<span style="padding-left:80px;" class="tit">{$labels[15]}</span>
<div class="cont-block-r" style="padding-right:10px;">
<div class="left-bg">
<div class="right-bg-2">
<input value="{$profile.Position}" type="text" class="textinput-2" name="position" size="12" /></a>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit">{$labels[16]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="" type="text" class="textinput-3" name="name" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit">{$labels[17]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="" type="text" class="textinput-3" name="second_name" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit">{$labels[18]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="{$profile.Email_1}" type="text" class="textinput-3" name="email" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit"></td>
<td>
<table style="padding-left:50px;" cellpadding="1" cellspacing="1" border="0">
<tr>
<td class="tit">{$labels[19]}</td>
<td>
<div class="cont-block-r-3">
<div class="left-bg">
<div class="right-bg-4">
<input value="{$profile.Phone_1}" type="text" class="textinput-4" name="phone1" size="12" />
</div>
</div>
</div>
</td>
<td class="tit">{$labels[20]}</td>
<td>
<div class="cont-block-r-3">
<div class="left-bg">
<div class="right-bg-4">
<input value="{$profile.Phone_2}" type="text" class="textinput-4" name="phone2" size="12" />
</div>
</div>
</div>
</td>
<td class="tit">{$labels[21]}</td>
<td>
<div class="cont-block-r-3">
<div class="left-bg">
<div class="right-bg-4">
<input value="{$profile.Fax}" type="text" class="textinput-4" name="fax" size="12" />
</div>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tit">{$labels[22]}</td>
<td>
<table cellpadding="1" cellspacing="1" border="0">
<tr>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<input value="{$profile.Country}" type="text" class="textinput-2" name="country" size="12" />
</div>
</div>
</div>
</td>
<td style="width:12px;"></td>
<td class="tit">{$labels[23]}</td>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<input value="{$profile.State_Province}" type="text" class="textinput-2" name="state" size="12" />
</div>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tit">{$labels[24]}</td>
<td>
<table cellpadding="1" cellspacing="1" border="0">
<tr>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<input value="{$profile.City}" type="text" class="textinput-2" name="city" size="12" />
</div>
</div>
</div>
</td>
<td style="width:12px;"></td>
<td class="tit">{$labels[25]}</td>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<input value="{$profile.Zip_Postal}" type="text" class="textinput-2" name="zip" size="12" />
</div>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tit">{$labels[26]}</td>
<td>
<div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3">
<input value="{$profile.Address}" type="text" class="textinput-3" name="adres" size="12" />
</div>
</div>
</div>
</td>
</tr>
<tr>
<td class="tit">{$labels[768]}</td>
<td>
<!-- <div class="cont-block-r-2">
<div class="left-bg">
<div class="right-bg-3"> -->
<select style="width:195px;" name="level">
<option value="Supervisor">Supervisor</option>
<option value="Manager">Manager</option>
<option value="Operator">Operator</option>
</select>
<!-- <input value="{$profile.Address}" type="text" class="textinput-3" name="adres" size="12" />
</div>
</div>
</div> -->
</td>
</tr>
<tr>
<td class="tit">{$labels[8]}</td>
<td>
<table cellpadding="1" cellspacing="1" border="0">
<tr>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<a rel="tipsy1" title="{$labels[31]}"><input onBlur="h('tipsy1')" onfocus="s('tipsy1')" id="login" value="{$ses.vars.login}" type="text" class="textinput-2" name="logname" size="12" /></a>
{literal}<script type='text/javascript'>$('#wrapper a[rel=tipsy1]').tipsy({trigger: 'manual', gravity: 'w'});</script>{/literal}
</div>
</div>
</div>
</td>
<td style="width:12px;"></td>
<td class="tit">{$labels[9]}</td>
<td>
<div class="cont-block-r">
<div class="left-bg">
<div class="right-bg-2">
<a rel="tipsy2" title="{$labels[32]}"><input onBlur="h('tipsy2')" onfocus="s('tipsy2')" type="password" class="textinput-2" name="pas" size="12" /></a>
{literal}<script type='text/javascript'>$('#wrapper a[rel=tipsy2]').tipsy({trigger: 'manual', gravity: 'w'});</script>{/literal}
</div>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tit">{$labels[767]}</td>
<td>
<div style="margin-left: 10px;">
{section name=i loop=$products}
<input type="checkbox" name="products_cb[{$products[i].ID}]" class="svuf_checkbox" /> {$products[i].Public_Name} <!-- checked="checked" -->
{/section}
</div>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input src="./img/sub.gif" type="Image">
</td>
</tr>
</table>
</form>
|
JS что, в глубине дивов инпуты не видит?
|
спасибо
|
| Часовой пояс GMT +3, время: 20:04. |