Javascript.RU

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

options[...].text null или не явл. объектом в for
Здравствуйте.
Как всегда у меня возникла проблема с js и ие
Недавно получил заказ, требовалось в 3 селектах выбрать нужные 3 символа, исходя из введенных символов в инпут, в принципе в хроме и фф этот скрипт более менее стабильно работал, правда иногда после изменений инпута, выбирал некорректные опции в селектах...
есть 3 селекта, в каждом опции A-Z, 0-9... + дефолтная опция "select" под 0.
что бы данный скрипт нормально работал, мне пришлось в цикл вести изменения, вместо 36 я поставил 39.
однако, ие ругается на
numar['iim'] = selectform1.options[selectform1.selectedIndex + iim].text.replace(/\s/g, "");
и на похожие строки.
Скажите пожалуйста как исправить ошибку "options[...].text - null или не является объектом"?
Заранее благодарен.

function dddd() {
var formform = document.getElementById("information1").getElementsByTagName("select")
var formnumber1 = document.getElementById("formnumber1").innerHTML.replace(/:/g, "").replace(/Character /g, "").replace(/\s/g, "");
formnumber1 = Number(formnumber1) - 1;
var formnumber2 = document.getElementById("formnumber2").innerHTML.replace(/:/g, "").replace(/Character /g, "");
formnumber2 = Number(formnumber2) - 1;
var formnumber3 = document.getElementById("formnumber3").innerHTML.replace(/:/g, "").replace(/Character /g, "");
formnumber3 = Number(formnumber3) - 1;
var selectform1 = document.getElementById("memInfo1")
var selectform2 = document.getElementById("memInfo2")
var selectform3 = document.getElementById("memInfo3")
var passinput = document.getElementById("someinput").value
var numar= new Array();
var numar2= new Array();
var numar3= new Array();
if (passinput.length > 3) {
for (var iim = 0; iim < 39; iim++) {
numar['iim'] = selectform1.options[selectform1.selectedIndex + iim].text.replace(/\s/g, "");
if (numar['iim'] == passinput.charAt(formnumber1)) {
selectform1.selectedIndex = iim;
alert("sdfgh");
}
numar2['iim'] = selectform2.options[selectform2.selectedIndex + iim].text.replace(/\s/g, "");
if (numar2['iim'] == passinput.charAt(formnumber2)) {
selectform2.selectedIndex = iim;
alert("sdfgh");
}
numar3['iim'] = selectform3.options[selectform3.selectedIndex + iim].text.replace(/\s/g, "");
if (numar3['iim'] == passinput.charAt(formnumber3)) {
selectform3.selectedIndex = iim;
alert("sdfgh");
}
}
} else {
alert("Alert.");
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2010, 09:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от zeloras
как исправить ошибку "options[...].text - null или не является объектом"?
Мой пример работает в ИЕ7, Опере, ФФ и Хроме...

<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE></TITLE>
<style>
</style>
<script>
function Go(Obj) {
	var i=Obj.selectedIndex
	alert(Obj.options[i].text)
	
}
</script>
</HEAD>
<BODY>
<select id='test' onchange='Go(this)'>
	<option>text 1</option>
	<option>text 2</option>
	<option>text 3</option>
</select>
</BODY>
</HTML>
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2010, 18:07
Новичок на форуме
Отправить личное сообщение для zeloras Посмотреть профиль Найти все сообщения от zeloras
 
Регистрация: 03.12.2010
Сообщений: 5

Дело в том, что мы не изменяем нечего в селектах) мы вписываем слово в инпут, а из него выдергиваться нужные символы, после чего в цикле for идет проверка, и если выдернутый символ совпадает с одной из строк опшнс, то выбираем ее..
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2010, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

А зачем это тут?
Сообщение от zeloras
numar['iim'] = selectform1.options[selectform1.selectedIndex + iim].text.replace(/\s/g, "");
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2010, 19:45
Новичок на форуме
Отправить личное сообщение для zeloras Посмотреть профиль Найти все сообщения от zeloras
 
Регистрация: 03.12.2010
Сообщений: 5

хммм...у меня без этого вроде в хроме не работало) проблема в переменной iim как я понял..если вместо нее поставить число, то работать будет...
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2010, 22:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от zeloras
Дело в том, что мы не изменяем нечего в селектах)
Я привёл пример того что дело не в
Сообщение от zeloras
options[...].text null или не явл. объектом в for
А совсем в другом. Т.ч. не на то грешишь...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IE7, "undefined" - есть null или не является объектом kostepanych Общие вопросы Javascript 8 24.11.2011 23:18
Удалить ряд символов перед или после курсора до определенного сивола brd Javascript под браузер 3 30.10.2009 08:20