Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2016, 07:26
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Не могу получить class и параметр iid
Привет всем вот у меня задачка и я грузанулся.
Я делаю современную форму регистрации как в http://affiliates.marathonbet.com/Re...ion/Registrate

В общем я уже все написал только вот осталось немного
Мне нужно понять что если клик произошел вне полей
<div class="form_input"></div>

то заменить все "form_input activ" на "form_input"
Но чтобы у меня правильно все сработало необходимо получить параметры class="form_input" и iid="1"
А получается так я могу получить ID но не могу получить остальные данные. Я не гуру но искал в гугле читал минуалы но толком не нашел.
Может подскажите пример или продемонстрируете скрипт рабочий.
Заранее спасибо.



<form id="shablon_registration_1">
    <div class="form_input" id="form-input-1" iid="1">
        <label>Имя</label>
        <input id="form_input_input-1" type="text" name=""   oninput="formoninput(1)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-2" iid="2">
        <label>Фамилия</label>
        <input id="form_input_input-2" type="text" name="" iid="2"  oninput="formoninput(2)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-3" iid="3">
        <label>Фамилия</label>
        <input id="form_input_input-3" type="text" name="" iid="3"  oninput="formoninput(3)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-4" iid="4">
        <label>Фамилия</label>
        <input id="form_input_input-4" type="text" name=""  iid="" oninput="formoninput(4)"/>
        <span class="err"></span>
    </div>
</form>

$(document).ready(function() {
/*        $('.form_input').click(function() {
            var iid = $(this).attr("iid");
            var clas = $(this).attr("class");
                
                //alert(clas);
                $('.form_input').removeClass('form_input activ').addClass('form_input');
                $('#form-input-'+ iid).removeClass('form_input').addClass('form_input activ');
        });*/
        document.onclick = function( e ) {
            //var element = e.srcElement || e.target;
            // узнаешь id элемента на который кликнули
            //id_element = element.id;
            //val_element = element.getAttributeNode("class");
            //clas = document.getElementById(id_element).getAttributeNode("class").value;
            //
            var iid = $(this).attr("iid");
            var clas = $(this).attr("class");
            alert(clas+' '+iid);
            //clas = document.getElementById(id_element).attr("class");
            //alert(clas+' '+id_element+' '+ val_element);
            //iid = document.getElementById(id_element).attr("iid");


            if (clas=='form_input'){
                $('.form_input').removeClass('form_input activ').addClass('form_input');
                $('#form-input-'+ iid).removeClass('form_input').addClass('form_input activ');
            }else{
                $('.form_input').removeClass('form_input activ').addClass('form_input');
            }
        };

        
//$(document).mouseup(function (e) {

     
        
});
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2016, 08:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,830

Сообщение от biryukovm
Мне нужно понять что если клик произошел вне полей
<div class="form_input"></div>
Вот
убрать при клике в другом месте
В одном из примеров я показываю один из вариантов проверок такого рода...
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2016, 08:56
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Очень помог Ваш метод по работе с "убрать при клике в другом месте"

$('.form_input').click(function() {
        var iid = $(this).attr("iid");
        var clas = $(this).attr("class");
        $('.form_input').removeClass('form_input activ').addClass('form_input');
        $('#form-input-'+ iid).removeClass('form_input').addClass('form_input activ');
        $('.form_zapis form_input').removeClass('form_zapis'); <-- Не срабатывает
        $('.form_input form_zapis').removeClass('form_zapis'); <-- Не срабатывает
        
        setTimeout(function (){
            $('body').click(function(){
                $('.form_input').removeClass('form_input activ').addClass('form_input');
                $('.form_zapis form_input').removeClass('form_zapis'); <-- Не срабатывает
                $('.form_input form_zapis').removeClass('form_zapis'); <-- Не срабатывает
            });
        });
        return false;   
    });


Но у меня теперь появилась проблема
Косяки с классами
Почему то Объединяет 2 класса ВОТАК "form_zapis form_input"
Как можно сделать проверку в документе на эту проблему и исправить на "form_input"
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2016, 09:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,830

biryukovm, у тебя странные селекторы...

Сообщение от biryukovm
$('.form_zapis form_input')
$('.form_input form_zapis')
Т.к. тегов
form_input
form_zapis

нет в "стандартном наборе"...
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2016, 09:46
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

ksa,
Ну а вообще возожно это как то выловить ? потому что когда делаем запрос на var clas = $(this).attr("class");
Потом можно сравнивать через if

Или только цыклом это делать ?
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2016, 09:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,830

Сообщение от biryukovm
Ну а вообще возожно это как то выловить ?
Я даже не понимаю, что именно ты собрался "ловить"...

Ты видел мои тестовые примеры... Там же есть примеры другого форумчанина...
Тебе нужно сделать свой пример и на нем объяснить свою проблему. Может тогда найдутся желающие тебе что-то показать...
А пока даже проблемы твои непонятны.
Ответить с цитированием
  #7 (permalink)  
Старый 02.12.2016, 10:29
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,548

Сообщение от biryukovm Посмотреть сообщение
Мне нужно понять что если клик произошел вне полей
У фокусируемых элементов есть событие onblur которое происходит когда они теряют фокус, к таким элементам относятся элементы форм (input, textarea, select, button, ...) и ссылки (a), также фокусируемыми можно сделать и другие элементы, если указать им атрибут tabindex.

Последний раз редактировалось Rise, 02.12.2016 в 10:35.
Ответить с цитированием
  #8 (permalink)  
Старый 02.12.2016, 10:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Прекрасно срабатывает
<script src='http://code.jquery.com/jquery-latest.js'></script>
<div class="form_input form_zapis"></div>
<div class="form_zapis form_input"></div>
<script>
   $('.form_input').removeClass('form_zapis');
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 02.12.2016, 11:14
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Тоячняк забыл что так надо указывать

Я тут завершил ребята делюсь своими наработками как делать современную форму регистрации

<form id="shablon_registration_1">

    <div class="form_input" id="form-input-1" iid="1">
        <label>Имя</label>
        <input id="form_input_input-1" type="text" name=""   oninput="formoninput(1)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-2" iid="2">
        <label>Фамилия</label>
        <input id="form_input_input-2" type="text" name="" iid="2"  oninput="formoninput(2)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-3" iid="3">
        <label>Фамилия</label>
        <input id="form_input_input-3" type="text" name="" iid="3"  oninput="formoninput(3)"/>
        <span class="err"></span>
    </div>
    <div class="form_input" id="form-input-4" iid="4">
        <label>Фамилия</label>
        <input id="form_input_input-4" type="text" name=""  iid="" oninput="formoninput(4)"/>
        <span class="err"></span>
    </div>




</form>
<script type="text/javascript">
        function formoninput(iid){
            var clas = $('#form-input-'+ iid).attr("class");
            var input = document.getElementById('form_input_input-'+ iid);
            $('.form_input').removeClass('form_input activ').addClass('form_input');
            if (input.value.length > 0){
                $('#form-input-'+ iid).removeClass('form_input activ').addClass('form_zapis');
            }else{
                $('#form-input-'+ iid).removeClass('form_zapis').addClass('form_input activ');
            }
        };
$(document).ready(function() {
    $('.form_input').click(function() {
        var iid = $(this).attr("iid");
        var clas = $(this).attr("class");
        $('.form_input').removeClass('form_input activ').addClass('form_input');
        if (clas!='form_zapis'){$('#form-input-'+ iid).removeClass('form_input').addClass('form_input activ');}
        setTimeout(function (){
            $('body').click(function(){
                $('.form_input').removeClass('form_input activ').addClass('form_input');
            });
        });
        return false;   
    });
    

});
</script>
<style type="text/css">
<!--
#shablon_registration_1{
    
}
#shablon_registration_1 .form_zapis{
    border: 1px solid #adadad;
    position: relative;
    border-radius: 8px;
    padding: 0;
    transition: all 100ms ease-in-out;
    margin: 1.5em 0.5em 0.5em 0.5em;
    box-shadow:0 0 3px 0 #00bff3;
    border-color:#2edfff;
}
#shablon_registration_1 .form_zapis label {
    position: absolute;
    left: 0;
    background-color: #fff;
    margin-left: 15px;
    font-weight: 400;
    padding: 0 3px;
    transition: all 100ms ease-in-out;
    cursor: text;
    display: inline-block;
    max-width: 100%;
    margin-bottom: 5px;
    font-size: 14px;
    z-index: 15;
    top: -14px;
    color: #00bff3;
}
#shablon_registration_1 .form_zapis label:after {
    content: "*";
    color: #00bff3;
    line-height: 18px;
    vertical-align: super;
}
#shablon_registration_1 div.form_input{
    border: 1px solid #adadad;
    position: relative;
    border-radius: 8px;
    padding: 0;
    transition: all 100ms ease-in-out;
    margin: 1.5em 0.5em 0.5em 0.5em;
}
#shablon_registration_1 div.form_input.activ{
    box-shadow:0 0 3px 0 #00bff3;
    border-color:#2edfff;
}

#shablon_registration_1 div.form_input label{
    position: absolute;
    top: 3px;
    left: 0;
    color: #adadad;
    background-color: #fff;
    margin-left: 15px;
    font-weight: 400;
    padding: 0 3px;
    transition: all 100ms ease-in-out;
    cursor: text;
    display: inline-block;
    max-width: 100%;
    margin-bottom: 5px;
}
#shablon_registration_1 div.form_input label:after {
    content: "*";
    color: #ca2029;
    line-height: 18px;
    vertical-align: super;
}
#shablon_registration_1 div.form_input.activ label:after {
    color: #00bff3;
}
#shablon_registration_1 div.form_input.activ label{
    font-size: 14px;
    z-index: 15;
    top: -14px;
    color: #00bff3;

}
#shablon_registration_1 div.form_input input, #shablon_registration_1 div.form_zapis input{
    border: 0;
    outline: 0;
    margin: 0;
    display: block;
    z-index: 10;
    color: #000;
    font-size: 14px;
    border-radius: 8px;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
#shablon_registration_1 div.form_input input:focus {
    box-shadow: 0 0 8px rgba(102,175,233,.6),inset 0 0 0 50px #fff;
    .form-control:focus {
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
}
#shablon_registration_1 div.form_input span.err{
    max-width: 90%;
    color: #ca2029;
    font-size: 14px;
    line-height: 15px;
    padding-left: 10px;
    margin-top: -5px;
    display: none;
    min-height: 15px;
    text-align: left;
}
-->
</style>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу получить name Falcon Events/DOM/Window 3 01.01.2019 16:08
Не могу получить id элементов в таблице. LowCoder Общие вопросы Javascript 2 05.07.2009 13:53
Не могу получить доступ к ячейке таблицы Andrey2005 Элементы интерфейса 4 14.06.2009 23:34
Не могу получить высоту из css asci Общие вопросы Javascript 5 30.03.2009 12:31
Не могу получить document.selection.createRange() при написании плагина SashaBorandi jQuery 0 14.01.2009 05:48