Проблема отключения / включения нескольких элементов формы с использованием JavaScript - PullRequest
0 голосов
/ 18 сентября 2010

Я пытаюсь отключить / включить несколько элементов формы HTML-страницы, используя JavaScript.У меня есть форма со многими полями, каждая строка формы имеет флажок для включения / отключения элементов в строке.

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

Вот код (это часть функции, вызываемой атрибутом onChange каждого флажка):

document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_quantity")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_description")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_price")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_language")[0].disabled = !theBox.checked;

Каждый элемент формы имеет свое (и уникальное) имя, и отдельные строки кода работают очень хорошо ... пока вы не сложите их вместе.Например: в приведенном выше коде поля «количество» и «описание» будут отключены / включены, а «цена» и «язык» - нет.

Если я изменю порядок строк,первые два всегда выполняются, несмотря ни на что.Тогда каждая строка кода не работает;это как прокомментировано.Я даже поставил несколько предупреждений, чтобы попытаться отладить, но они просто игнорируются (вообще не появляется диалоговое окно), если я вставляю их после кода выше.Имена элементов правильные.

Я уверен, что где-то допустил ошибку, но так как работают отдельные строки кода, я не знаю, где искать ... это сводит меня с ума!

Пожалуйста, я мог бы действительно помочь.

1 Ответ

0 голосов
/ 18 сентября 2010

Я только что заставил это работать, и, как я думал, это была очень плохая ошибка.

Проблема заключалась в том, что не каждая строка формы в HTML имеет все эти 4 поля.Итак, в основном я пытался получить доступ к свойству нулевого объекта.

Я решил это, поставив:

if( document.getElementById(id) != null )

, прежде чем пытаться манипулировать элементом.

Иногда, когда вы спешите, вы заканчиваете тем, что пренебрегаете некоторыми очень простыми вещами ...

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...