событие onLoad
добрый день.
подскажите как реализовать чтоб по событию onload поля <input type="radio"> переходили в состояние disabled. запускаю ф-цию ничего не срабатывает. |
Странно, у меня срабатывает.
|
Так может приведешь пример реализации
|
Там может покажешь, что у тебя не срабатывает, а то телепаты в отпуске.
|
вот моя функция, запускаю, и она срабатывает
<script>
window.onload = function(){
var myForm = document.getElementById('myForm');
for (var i = 0; i < myForm.elements.length; i++)
myForm.elements[i].disabled = true;
}
</script>
<body>
<form id="myForm">
<input type="radio" name="na">1</input>
<input type="radio" name="na">2</input>
<input type="radio" name="na">3</input>
<input type="radio" name="na">4</input>
</form>
</body>
|
вопрос возник
<script>
window.onload = function(){
//в случае с div
alert(document.getElementById('test').childNodes.length);//в IE - 3, в FF - 5 т.к. DOM не нормализован
//здесь вроде все понятно
//FireBug показывает для document.getElementBiId('test').childNodes:
//<TextNode textContent="\n ">
//div
//<TextNode textContent="\n">
//span
//<TextNode textContent="lala\n">
//
var myForm = document.getElementById('myForm');
alert(myForm.childNodes.length);//9 в FF, 15?? в IE
for (var i = 0; i < myForm.childNodes.length; i++)
alert(myForm.childNodes[i].tagName);
//в IE
// INPUT
// undefined
// /INPUT
// undefined
// INPUT
// undefined
// /INPUT
// INPUT
// undefined
// /INPUT
// undefined
// INPUT
// undefined
// /INPUT
// undefined
//=> IE воспринимает теги input как два отдельных элемента Dom?,
// т.е. всю вот эту штуку: <input type="radio" name="na">1</input>
//как 3 отдельных элемента DOM: 2 объекта Element и один textNode между ними?
// тогда почему есть еще undefined после /INPUT??
//FF, получается, 'показывает' один input и следующий за ним текстовый узел
//Ie - 3 узла, но ни в одном случае, текстовый узел не является вложенным
}
</script>
<body>
<form id="myForm" action="#">
<input type="radio" name="na">1</input>
<input type="radio" name="na">2</input><input type="radio" name="na">3</input>
<input type="radio" name="na">4</input>
</form>
<div id="test">
<div>parampampam</div>
<span></span>lala
</div>
</body>
|
а почему не работает такая конструкция
<script> window.onload = Abc(); function Abc(){ var val = document.getElementByName('abc'); val.disabled = true; } </script> <form> <input type="radio" name="abc">1</input> </form> |
Цитата:
что возвращает функция Abc? А функция Abc возвращает undefined
function Abc(){
//var val = document.getElementByName('abc');
//val.disabled = true;
}
alert(Abc())
Значит вы делаете что? Вы присваиваете свойству onload объекта window значение undefined: window.onload = undefined вот и не работает. Нужно присваивать ссылку на функцию: window.onload = Abc; И метода getElementByName не существует, есть метод getElementsByName. |
Все равно не работает
|
<script>
window.onload = Abc;
function Abc(){
var val = document.getElementById('abc');
val.disabled = true;
}
</script>
<form>
<input type="radio" id="abc">1</input>
</form>
|
| Часовой пояс GMT +3, время: 00:13. |