Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2012, 18:20
Новичок на форуме
Отправить личное сообщение для Arne Посмотреть профиль Найти все сообщения от Arne
 
Регистрация: 19.12.2012
Сообщений: 3

Удалить и создать элемент по клику
Только недавно начал изучать JavaScript, столкнулся с проблемой.
Есть страница. Пароль изначально задается в поле type="text", по клику на ссылку "скрыть" поле становится password, с возможностью вернуть все, как было. Как я понял из чтения форумов, в IE с этим проблемы. И было решено создавать/удалять инпуты.
Проблема в том, что по первому клику все происходит как надо, а вот при повторном клике не происходит ничего. Где я ошибся?

<script>
$('#hide').click(function() {
	$('.on').append('<input type="password" value="" id="pass" class="password"><span class="grey_str"></span><a href="#" class="hide" id="show">Показать</a>');
	$("#txt").keyup(function () {
      var value = $(this).val();
      $("#pass").val(value);
    }).keyup();
	$('#txt, #hide, #grey_1').remove();
});
$('#show').click(function() {
	$('.on').append('<input type="text" value="" id="txt" class="password"><span class="grey_str" id="grey_1"></span><a href="#" class="hide" id="hide">Скрыть</a>');
	$("#pass").keyup(function () {
      var value = $(this).val();
      $("#txt").val(value);
    }).keyup();
	$('#pass, #show, #grey_2').remove();
});
</script>

Помогите, пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2012, 19:39
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Arne, вот пример
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<input type="password" id="password-hide">
<input type="text" id="password">
<input type="button" id="show-hide" value="show/hide">    
    <script>

      
      
      
var bt = document.getElementById("show-hide");
var inp_hide = document.getElementById("password-hide");
var inp = document.getElementById("password");

   function show_hide(param) {
    
     var show_state = param.show;
     
     cl();
     
     param.bt.onclick = cl;
     
     function cl (){
      
       if(show_state) show();
         
       
       else hide();
     
     }
     
    function show() {
     
     param.inp_hide.style.display = "none";
      
     param.inp.value = param.inp_hide.value;
      
      param.inp.style.display = "";
      
       show_state = false;
    }   
    
    function hide() {
     
     param.inp_hide.style.display = "";
      
     param.inp_hide.value = param.inp.value ;
      
     param.inp.style.display = "none";
      
       show_state = true;
    }  
    
    }
      show_hide({
        show: false,
        inp_hide: inp_hide,
        inp:inp,
        bt:bt
      
      });

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2012, 08:55
Новичок на форуме
Отправить личное сообщение для Arne Посмотреть профиль Найти все сообщения от Arne
 
Регистрация: 19.12.2012
Сообщений: 3

cyber,
с display:none/block я сам разобрался, но программист от меня требует именно удалять-добавлять блоки. Ему один инпут нужен, а не два на выходе. А вот тут и вышла засада
Ответить с цитированием
  #4 (permalink)  
Старый 20.12.2012, 10:38
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Arne
требует именно удалять-добавлять блоки.
это очень тупо, ну ладно
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<div id="container">

  
    </div>
    
    <input type="button" id="show-hide" value="show/hide">    
    <script>

      
      
      
var bt = document.getElementById("show-hide");
var cont = document.getElementById("container");

   function show_hide(param) {
    
     var show_state = param.show, current;
     
     append();
     
     param.bt.onclick = append;
    
     
       function append(){
         // тут можно задать нужные парметры инпуту
     
       var inp = document.createElement("input");
       
       if(show_state) inp.type = "text";
       else inp.type = "password";
       
       if(current) {
         inp.value = current.value;
         container.removeChild(current);
       }
       
       param.container.appendChild(inp);
       
       current = inp;
       
       show_state = !show_state;
     }
     
     
    
    
    };
      show_hide({
        show: false,
        container:cont,
        bt:bt
      
      });

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2012, 11:07
Новичок на форуме
Отправить личное сообщение для Arne Посмотреть профиль Найти все сообщения от Arne
 
Регистрация: 19.12.2012
Сообщений: 3

cyber,
у программиста проблема с передачей данных из поля на сервер.
Помогло. Спасибо большое)
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2012, 18:08
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Arne
у программиста проблема с передачей данных из поля на сервер.
я так и понял, но это можно решить и по другому не удаляю.
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать и удалить элемент DOM lamer Общие вопросы Javascript 4 04.12.2012 20:33
как удалить элемент в DOM? czp Общие вопросы Javascript 11 17.12.2011 20:55
Как можно удалить динамически созданный элемент Арсений Элементы интерфейса 18 08.07.2010 12:56
Как удалить элемент из документа HTML Dima00782 Общие вопросы Javascript 2 28.06.2010 17:32
имея this как удалить элемент из тела html clgs Общие вопросы Javascript 1 13.05.2009 17:55