Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   options[...].text null или не явл. объектом в for (https://javascript.ru/forum/css-html-internet-explorer/13562-options%5B-%5D-text-null-ili-ne-yavl-obektom-v.html)

zeloras 03.12.2010 23:13

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.");
}
}

ksa 04.12.2010 09:47

Цитата:

Сообщение от 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>

zeloras 04.12.2010 18:07

Дело в том, что мы не изменяем нечего в селектах) мы вписываем слово в инпут, а из него выдергиваться нужные символы, после чего в цикле for идет проверка, и если выдернутый символ совпадает с одной из строк опшнс, то выбираем ее..

рони 04.12.2010 18:35

А зачем это тут?
Цитата:

Сообщение от zeloras
numar['iim'] = selectform1.options[selectform1.selectedIndex + iim].text.replace(/\s/g, "");


zeloras 04.12.2010 19:45

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

ksa 04.12.2010 22:18

Цитата:

Сообщение от zeloras
Дело в том, что мы не изменяем нечего в селектах)

Я привёл пример того что дело не в
Цитата:

Сообщение от zeloras
options[...].text null или не явл. объектом в for

А совсем в другом. Т.ч. не на то грешишь...


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