Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   cannot modify properties of a WrappedNative (https://javascript.ru/forum/css-html-firefox-mizilla/5394-cannot-modify-properties-wrappednative.html)

micscr 12.10.2009 10:26

cannot modify properties of a WrappedNative
 
Привет.
Выскакивает только в Mozilla ошибка "cannot modify properties of a WrappedNative nresult:0x80570034"
Форма:
<form action="" method="post" enctype="multipart/form-data" name="form2" onSubmit="return validSubmit()">
<input name="mheight" type="text" size="3" maxlength="3" onKeyPress="return keyValid(event)" onChange="keyValidChange(1)">
<input name="mwidth" type="text" size="3" maxlength="3" onKeyPress="return keyValid(event)" onChange="keyValidChange(2)" onFocus="newValueRad()">
</form>

Код:
function validSubmit()
{
    //Проверка перед отправкой
	if (document.form2.mheight.value=='') {
	    alert('Введите высоту миниатюры');
		document.form2.mheight.focus();
		return false;
	}
	var rad=getRadioValue(document.form2.what);
	if (rad==3) {
	    if (document.form2.mwidth.value=='') {
	        alert('Введите ширину миниатюры');
		    document.form2.mwidth.focus();
		    return false;
	    }
	}
}

function keyValidChange(x)
{
    // onChange полей ввода ширины и высоты
    var obj=null;
	if (x==1) {
	    obj=document.form2.mheight;
	}
	if (x==2) {
	    obj=document.form2.mwidth;
	}	
	if (!obj) {
	    return;
	}
	var text=obj.value;
	var flag=false;
	for (var i=0;i<text.length;i++)
	{
	    var kod=text.charCodeAt(i);
		if ((kod<48)||(kod>57)) {
		    flag=true;
			break;
		}
	}
	if (flag) {
	    obj.value='';
	} else {
	    var k=parseInt(obj.value);
		if (isNaN(k)) {
		    obj.value='';return;
		}		
		// проверяем min размеры
		if (obj.name=='mwidth') {
		    if (k<minWidth) {
			    k='';
			}
		}
		if (obj.name=='mheight') {
		    if (k<minHeight) {
			    k='';
			}
		}

		obj.value=k;		
	}
	
}
//
function keyValid(event)
{
    // очень приблизительная проверка по onkeypress
	try {
	event=event || window.event;
	var keycode=event.which||event.keyCode;
	if ((keycode==0)||(keycode==8)||
	    (keycode==9)||(keycode==37)||
		(keycode==39)||(keycode==46)) { 
	    return true;
	} 	
	if ((keycode<48)||(keycode>57)) { 
	    return false;
	} 
	} catch (e)
	{
	alert('Error');
	}
}

Возникает при убирании фокуса с первого инпута и
иногда при сабмите. Не могу понять - из-за чего.
Спасибо.

Kolyaj 12.10.2009 14:50

На чистом профиле попробуйте.

micscr 12.10.2009 15:34

В новый файл скопировал только:
function keyValidChange(x)
{
    /*
    весь код закомментировал
    */

}

<form action="" method="post" name="form2">
<input name="mheight" type="text" size="3"  maxlength="3" onChange="keyValidChange(1)" >
фокус
</form>

Все равно, вводишь что-то в поле, щелкаешь например по тексту "фокус" и появляется ошибка. Причем не каждый раз, а через раз.
Если вместо onChange onBlur поставить - реже, но тоже появляется.
Причем заметил - только если вводить цифры :blink:

Может из-за FireBug? Недавно его поставил - в нем кстати ноль реакции.
Или Mozilla заглючила? Или мой onkeypress как-то запомнился и конфликтует?

Текст ошибки:

Что же делать?

Kolyaj 12.10.2009 15:48

Цитата:

Сообщение от micscr
В новый файл скопировал только:

Не в новом файле, а в новом профиле firefox'а. Ошибка не в вашем скрипте, а в мозилловском, или расширение какое-то глючит.

micscr 12.10.2009 17:32

Удалил полностью Mozilla с чисткой реестра и удалением оставшихся файлов с диска. Переустановил из архива, никаких специальных дополнений.
Результат - ошибка осталась, только реже выскакивает.....

micscr 12.10.2009 17:53

Еще прикол.
После перестановки "маленький" обрезанный (пробный) файл работает как надо.
Запускаю основной файл (из 1-ого поста) - тоже какое-то время нормально, но потом ошибка.
И после этого и "маленький" сразу начинает выдавать ошибку.
Идет какое-то запоминание на уровне приложения вне зависимости даже от перезагрузки.

Вывод: сам того не желая написал "убийцу" FireFox, а проверки
наверное придется делать на php... Что с кодом не так - не пойму.:(


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