Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Пропадает видимость подгружаемого элемента (https://javascript.ru/forum/events/42593-propadaet-vidimost-podgruzhaemogo-ehlementa.html)

NaTaran 02.11.2013 01:33

Пропадает видимость подгружаемого элемента
 
Есть два дива меню (ссылки) и результат (Подгружаемая форма)
<div id='link'>
	<a id="link1" href="#">Анкета</a><br>	
</div>
<div id=resultat></div>


Нажимая на ссылку в меню мы подгружаем форму с анкетой:
<form>
	<textarea id='anketa' rows='10' cols='45' name='anketa'>/textarea><br>
	<a id="scan_anketa" href="#">Обработать</a><br>
</form>


JS код
function initialize() {
        //Обработчик Меню
	$('a').click(function (e){
		if(this.id == "link1") loadFormAnketa();
 	});
	
	// Обработчик Формы Анкеты
	document.getElementById('resultat').onclick = function(e) {

		// Получаем event.target
		var event = e || window.event;
		var target = event.target || event.srcElement; 

		// Проверим, интересует ли нас этот клик?
		// если клик был не на ссылке, то нет
		if (target.tagName != 'A') return;
		
		// Обработать клик по ссылке
		var link_id = target.getAttribute('id');
		if(link_id == "scan_anketa") scanAnketa();
	
		return false; 
	};
}

function loadFormAnketa() {
     $('#resultat').load('ajax_form_anketa.html');
}
 
function scanAnketa() {	      
	document.getElementById("anketa").innerHTML = "Данные";	
	alert('OK');
}


При первом нажатии на подгруженную ссылку "ОБРАБОТАТЬ" все работает как и задумано, в текстовом поле появляются "Данные".
Но если стереть в текстовом поле и опять нажать на ссылку "Обработать" то в текстовом поле нечего не появляется.

Использовал разные элементы формы input, select. Разные обращения к элементам $('textarea').attr("value",'Данные');.

Результат не изменился, к полям формы я могу обратится только один раз, далее видимость элемента в DOM "пропадает". Возобновляется видимость элементов формы только когда я заново подгружаю форму через див меню.

Помогите исправить, хотелось бы работать с подгружаемым контентом (элементами форм) без ограничений и без перезагрузки постоянно формы.

a_l 02.11.2013 10:54

Здесь не закрыт тег:
<textarea id='anketa' rows='10' cols='45' name='anketa'>/textarea>
Здесь не хватает кавычек:
<div id=resultat></div>

По сути вопроса - пробуйте так:
document.getElementById('anketa').value = 'Данные';

или, раз используете jQuery:
$('#anketa').val('Данные');

Да и вообще:
function initialize() {
  //Обработчик Меню
  $('a#link1').click(function (){
    loadFormAnketa();
  });
  // Обработчик Формы Анкеты
  $('#resultat').on('click', 'a#scan_anketa', function() {
    scanAnketa();
  });
}

function loadFormAnketa() {
  $('#resultat').load('ajax_form_anketa.html');
}
 
function scanAnketa() {	      
  $('#anketa').val('Данные');	
  alert('OK');
}

NaTaran 02.11.2013 18:31

Спасибо за ответ.
Это была сокращенная версия моего кода, что бы не захламлять.
Ошибки:
1. Не закрытый тег не было, при копировании напортачил.
2. Отсутствие ковычек на id=resultat присутствовала, Исправил.

Создал чистый скрипт по примеру что я написал, все работает отлично. Видимо где то кроются ошибки в остальном (полном) коде то что я не выкладывал.

Буду искать.

Спасибо за помощь.


Часовой пояс GMT +3, время: 01:10.