Javascript.RU

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

Проблема с IE 9
Есть код
<html>

<head>



<meta  charset="utf-8" />
	<title>Test</title>
	
<script type="text/javascript" src="jquery.js"></script>
	

<script type="text/javascript">

						

var g_xml;
$(document).ready(function(){
		
		$.ajax({
			type: "GET",  
			url: "test.xml", 
			dataType: "xml", 
			success: vasa	
	 	});
		
		var button2 = document.getElementById("id2");
		button2.style.display='none';
		var button3 = document.getElementById("id3");
		button3.style.display='none';
		function vasa(xml) { 
					ResultTextTrue=$(xml).find('ResultTextTrue').text();
					ResultTextFalse=$(xml).find('ResultTextFalse').text();
					attemptsanswer=$(xml).find('attemptsanswer').text(); 
		
				g_xml=xml;
				html='';
				item=$(xml).find('questions').children();
				for(i=0; i<$(item).length; i++){
					html=html+"<div class='question' value='"+i+"'>";
					variant='';
					element=$(item).eq(i).children();
					k=0;
					title="<p>"+$(element)[0].textContent+"</p>";
					ans=$(element).eq(1).children();
					for(j=0; j<$(ans).length; j++){
						variant=variant+"<input type='radio' value='"+k+"' name='question"+i+"'>"+$(ans)[j].textContent;								
						k++;
					}	
					k=0;
					html=html+title+variant+"</div>";
				}		
				$('#queston').html(html);
				
				var div = document.getElementById('divi');
				//var decoration = xml.querySelector('style');
				div.style.border = $(xml).find('style').attr('border');
				div.style.width = $(xml).find('style').attr('width'); 
				div.style.height = $(xml).find('style').attr('hight');
				div.style.padding = $(xml).find('style').attr('padding');
				div.style.margin = $(xml).find('style').attr('margin');
				div.style.position = $(xml).find('style').attr('position');
		}
	 
       	
});
var pressed=0;
var pressed1=0;	

function checkAnswer(){

	q=$('#form').find('.question');
	for(i=0; i<$(q).length; i++){
		q_value=$(q).eq(i).attr('value');
		value=$(q).eq(i).find('input:checked').attr('value');
		rating=$(g_xml).find('questions').children().eq(q_value).children().eq(1).children().eq(value).attr('rating')
		ans=$(g_xml).find('questions').children().eq(q_value).children();
		text=$(ans).find('[rating="1"]').text()
		if(rating==1){
			//alert($(q).eq(i).find('p').text()+" - good ("+text+")");
			output.value=ResultTextTrue;
			
		}else{
		//	alert($(q).eq(i).find('p').text()+" - bad ("+text+")");
			output.value=ResultTextFalse;
			
			
		}
	
	}
			
		if(pressed<attemptsanswer)
							{
					
					  document.getElementById('meow').innerHTML = ++pressed;
						//	alert(pressed);	
				
                       }
					   else
					   {		
					    
							
							pressed=0;
							var button = document.getElementById("send");
							button.style.display='none';
							var button1 = document.getElementById("id1");
							button1.style.display='none';
							var button2 = document.getElementById("id2");
							button2.style.display='';
								button2.onclick = function(event){	
							
							
							
							button.style.display='';
							button1.style.display='';
							button2.style.display='none';
						
						
						
							
											g=++pressed1;
											
											
											if(pressed1>attemptsanswer)
											{
											button.style.display='none';
											button1.style.display='none';
											button2.style.display='none';
											var button3 = document.getElementById("id3");
											button3.style.display='';
										//	alert('ваши попытки закончились.Узнайте правильный ответ');
											}
										
										
							
						
							}
							
			
							
					   }
	
}
function 	 TrueAnswer(){
for(i=0; i<$(q).length; i++){
		 q_value=$(q).eq(i).attr('value');
        rating=$(g_xml).find('questions').children().eq(q_value).children().eq(1).children().eq(value).attr('rating')
        ans=$(g_xml).find('questions').children().eq(q_value).children();
        text=$(ans).find('[rating="1"]').text();     
        output.value+=($(q).eq(i).find('p').text()+"("+text+")");
}
}
   

</script>

</head>
<body>


<div id='form'>
<p>На кнопочку тыкнуто: <span id="meow">0</span> раз.</p>
	<div id="divi">
	<div id="queston"></div>
	</div>
	<button id='send' name='send' onclick='checkAnswer()' >Проверить</button>
	<button id="id1" type="reset">Стереть Ответы</button>
	<button id="id2" type="reset">Начать тест заново</button>
	<button id="id3" type="button" onclick="TrueAnswer()" >Показать правильный ответ</button>
	<p style=" position:relative"><textarea id="output" readonly></textarea></p>
</div>



</body>

</html>

И IE ругаетса на строку
item=$(xml).find('questions').children();

и говорит "Команда не поддерживается объектом".Что с этим можно поделать?Я так понимаю проблема не в children()? так как пишут что ,этот метод это была чисто для IE.Что тогда нетак подскажите пожалуста

Последний раз редактировалось Vasy, 26.03.2013 в 18:03.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2013, 15:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Vasy
Что с этим можно поделать?
Как вариант разбить на строки

item=$(xml);
item=item.find('questions');
item=item.children();

И посмотреть что именно "не нравится"...
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2013, 15:58
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

у меня Undefined variable: attemptsanswer пишет
выложи код на http://codepen.io/pen/ например
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2013, 16:07
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

ам ну ругаетса конкретно в строке
item=$(xml);


Если поменять
item
на любую другую переменную то работает(создаютса input и все остальное) но все текстовые поля обозначает как udentified.

Последний раз редактировалось Vasy, 26.03.2013 в 16:09.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2013, 16:09
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Сообщение от animhotep Посмотреть сообщение
у меня Undefined variable: attemptsanswer пишет
выложи код на http://codepen.io/pen/ например
Ам если я вылаживаю,то получаетса что xml файл я не подгружаю.

Последний раз редактировалось Vasy, 26.03.2013 в 16:14.
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2013, 16:20
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

вот получилось выложить в песочницу
http://learn.javascript.ru/play/SPHlY

В песочнице во всех браузерах отображаетса так как нужно.Но когда запускаю локально то в IE все тектовые поля выдаёт как udentified

Последний раз редактировалось Vasy, 26.03.2013 в 16:40.
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2013, 20:03
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

локально $.ajax не должно работать, если у тебя веб сервера нету
Ответить с цитированием
  #8 (permalink)  
Старый 26.03.2013, 21:18
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Сообщение от animhotep Посмотреть сообщение
локально $.ajax не должно работать, если у тебя веб сервера нету
ну я не совсем глупый как ты обрисовал.Я использую wamp.
Так я собственно немогу понять,почему если в песочнице все работает и создаётса коректно и IE,то почему локально нехочет работать?Ну тоесть когда я подргружаю xml файл с сервера.
Ответить с цитированием
  #9 (permalink)  
Старый 27.03.2013, 13:57
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

мучался вчера и севодня так и непонял,почему в песочнице все ок,а когда подгружаю xml файл как с сервера то все текстовые поля udentified?
подскажите пожалуста как это исправить?
Ответить с цитированием
  #10 (permalink)  
Старый 27.03.2013, 15:06
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Нашол в чем проблема.Но немогу ёё решить.В строках
variant=variant+"<input id='radio' type='radio' value='"+k+"' name='question"+i+"'>"+$(ans)[j].textContent;

title="<p>"+$(element)[0].textContent+"</p>";


textContent
в IE выдаёт udentified его нужно менять на
text()

делаю это так
title="<p>"+$(element)[0].text()+"</p>";

но тогда совсем ничево не создаётса,если ставлю просто
text
то в любом браузере кроме IE в месте текста стоит udentified.Как с этим боротса?
Пробовал делать так,для проверки
textquestion=$(element)[0].text();
                    title="<p>"+textquestion+"</p>";

Собственно не создаётса совсем ничево,и я так полагаю дело в text().Его здесь что нельзя использовать?Но везде пишут что text() не будет работать если его использовать с <input> а он с <input> в моём коде не заимодействует же.



И столкнулса с ище одной проблемой.Переделал немного код и теперь он выглядит так
<form id="form" onsubmit="return false">


    <div id="divi">
    <div id="queston"></div>
    </div>
    <button id='send' name='send' onclick="checkAnswer()">Проверить</button>
    <button id="id1" type="reset">Стереть Ответы</button>
    <button id="id2" type="reset">Начать тест заново</button>
    <button id="id3"  onclick="TrueAnswer()" >Показать правильный ответ</button>
    <p style=" position:relative"><textarea id="output" readonly></textarea></p>

</form>

Но так IE нехочет реагировать на нажтие кнопки Проверить.А с изначальным кодом который я сбрасывал все работало нормально.В чем проблема?И да в этой строке тоже менял когда с формой то так.
q=$('form').find('.question');


Ну либо же подскажите как сделать так что-бы убирать отмеченый radiobutton?Ну тоесть если писать функцию
function reset(){
output.value='';
}

и вызывать ёё здесь
<div id="form">


    <div id="divi">
    <div id="queston"></div>
    </div>
    <button id='send' name='send' onclick='checkAnswer()' >Проверить</button>
    <button id="id1" onclick='reset()'>Стереть Ответы</button>
    <button id="id2" onclick='reset()'>Начать тест заново</button>
    <button id="id3"  onclick="TrueAnswer()" >Показать правильный ответ</button>
    <p style=" position:relative"><textarea id="output" readonly></textarea></p>

</div>

Последний раз редактировалось Vasy, 27.03.2013 в 17:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47