> function makeTable() {
> var ItemA = Item.ItemName.options[Item.ItemName.options.selectedIndex].text;
> var myParagraph=document.getElementById("myLine");
> myForm = document.createElement("FORM");
> mytable = document.createElement("TABLE");
> mytablebody = document.createElement("TBODY");
Если вы не объявляете переменные с var , они становятся глобальными переменными при первой оценке.Всегда объявляйте переменные.
> var CB_Format = document.createElement('input');
> CB_Format.type = 'checkbox';
> CB_Format.name= "CB_Test";
> CB_Format.value= 1;
> CB_Format.setAttribute("name", "CBTest2");
Приведенная выше строка меняет свойство name со значения, назначенного несколькими строками ранее, почему оба варианта?Просто присвойте правильное значение свойству name один раз:
CB_Format.name = "CBTest2";
То же самое касается использования setAttribute позже.Обратите внимание, что установка значения свойства не всегда изменяет связанный атрибут в некоторых браузерах, поэтому всегда используют свойства, если нет особой причины для использования setAttribute ,
[...]
Насколько я понимаю, мое решение должно быть таким же простым, как оповещение (document.form.checkbox.checked), но независимо от того, какую комбинацию возможных имен я пытаюсь получить, я получаюошибка в том, что это нулевой или нет объект как в ie8, так и в firefox.Спасибо за вашу помощь
Элементы управления формой доступны как именованные свойства элемента формы.Если существует более одного элемента управления с одинаковым именем, они находятся в коллекции.Присвоение различных значений свойству name и атрибуту вызывает проблемы. должно быть так, что второе назначение перезаписывает первое, но, без сомнения, где-то есть браузер, который будет хранить оба значения (одно для атрибута, а другое для свойства).
простое решение - всегда использовать свойства и назначать только одно значение.Если вы хотите, чтобы имя было CBTest2 (поскольку назначено второе), то при добавлении ввода в форму и в форму документа он будет доступен как:
document.forms['formName'].elements['CBTest2']
Если имена являются допустимыми идентификаторами, можно использовать сокращенную точечную запись:
document.formName.CBTest2
Поскольку у вас есть два элемента с таким именем, возвращаемое значение будет коллекцией (немного похоже на массив), чтобы получить первый, используйте:
document.formName.CBTest2[0]