scope - область видимости
Здравствуйте. Подскажите, пожалуйста, как мне добраться до переменной flag__name в глобальной области видимости.
<div class="val__form"> <form action="" method="get" class="form1"> <div class="val__input_w"> <input class="val__i val__input val__input_name" type="text" value="" name="fname" /> </div> <div class="val__input_w"> <input class="val__i val__input val__input_email" type="text" value="" name="email" /> </div> <div class="val__input_w"> <input class="val__i val__input" type="text" value="8 (_ _ _) _ _ _-_ _-_ _" name="" /> </div> <div class="val__input_w val__input_w-checkbox"> <input class="val__i val__input_checkbox" type="checkbox" name="" /> <span>Заказать обратный звонок</span> </div> <div class="val__arrow-submit"><input class="val__arrow-submit_img" type="image" src="images/arrow-submit.png" disabled="true" /></div> </form> </div>
$(function() {
(function() {
var
pattern__name = /\S/,
pattern__email = /\b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]{2,4}\b/i;
var
name = $('input.val__input_name'),
email = $('input.val__input_email'),
submit = $('input.val__arrow-submit_img');
var flag__name = false;
function validation() {
name.on('blur', function() {
if ( name.val() != '' ) {
if ( name.val().search(pattern__name) == 0 ) {
name.removeClass("error").addClass("ok");
flag__name = true; // Меняю значение на true
}
else {
name.addClass("error");
}
}
else {
name.addClass("error");
}
});
}
validation();
if ( flag__name ) { // Здесь false
alert("true");
}
})();
});
|
s24344,
в чём проблема? |
var flag__name определен в глобальной области видимости. По условию меняю значение переменной в локальной области видимости. Но это изменение внизу кода в глобальной области видимости не видно.
|
s24344,
я в полном тупике от вашей логики ... возможно вы хотели так ...
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var
pattern__name = /\S/,
pattern__email = /\b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]{2,4}\b/i;
var
name = $('input.val__input_name'),
email = $('input.val__input_email'),
submit = $('input.val__arrow-submit_img');
var flag__name = false;
name.on('blur', validation);
function validation() {
if ( name.val() != '' ) {
if ( name.val().search(pattern__name) == 0 ) {
name.removeClass("error").addClass("ok");
flag__name = true; // Меняю значение на true
}
else {
name.addClass("error");
}
}
else {
name.addClass("error");
}
alert(flag__name);
}
});
</script>
</head>
<body>
<div class="val__form">
<form action="" method="get" class="form1">
<div class="val__input_w">
<input class="val__i val__input val__input_name" type="text" value="" name="fname" />
</div>
<div class="val__input_w">
<input class="val__i val__input val__input_email" type="text" value="" name="email" />
</div>
<div class="val__input_w">
<input class="val__i val__input" type="text" value="8 (_ _ _) _ _ _-_ _-_ _" name="" />
</div>
<div class="val__input_w val__input_w-checkbox">
<input class="val__i val__input_checkbox" type="checkbox" name="" />
<span>Заказать обратный звонок</span>
</div>
<div class="val__arrow-submit"><input class="val__arrow-submit_img" type="image" src="images/arrow-submit.png" disabled="true" /></div>
</form>
</div>
</body>
</html>
|
Я хотел перевести flag__name в true и, например, в других (будущих) функциях также flag в true. А в конце кода в условии, если все flag true убрать на кнопке submit атрибут disabled.
|
|
Спасибо
|
| Часовой пояс GMT +3, время: 08:51. |