Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onchange для button и ... (https://javascript.ru/forum/events/22082-onchange-dlya-button-i.html)

dkachan 05.10.2011 16:41

onchange для button и ...
 
Здравствуйте! помогите с проблемой:
задача - создать страницу средствами только javascript.
вот мой код:

<HTML>

<HEAD>

<TITLE> EXAMPLE222 </TITLE>

<script type="text/javascript">

function sendms()
{
alert("777");
return true;
}

function count1()
{
alert("777");
}


function NewFile1()
{
alert("777");
}


function CreateForm1()
{
var body1 = document.getElementsByTagName("body")[0];
var div1 = document.createElement("div");
div1.id = "div1";
div1.style.position = "absolute";
div1.style.width = "30%";
div1.style.height = "90%";
div1.style['background'] = '#94e8eA';
div1.style.border = '1px solid black'
//div1.style.textAlign = "center";
var p1 = document.createElement("p");
var p2 = document.createElement("p");
var p3 = document.createElement("p");
var p4 = document.createElement("p");
var p5 = document.createElement("p");
var p6 = document.createElement("p");
var p7 = document.createElement("p");

var field1 = document.createElement("input");
field1.id = "field1";
field1.type = "text";
var field2 = document.createElement("input");
field2.id = "field2";
field2.type = "text";
var field3 = document.createElement("input");
field3.id = "field3";
field3.type = "text";
var field4 = document.createElement("input");
field4.id = "field4";
field4.type = "text";


var button1 = document.createElement("input");
button1.id = "button1";
button1.type = "button";
button1.value = "Send";
button1.onchange = "return sendms()";

file1 = document.createElement("input");
file1.id = "file1";
file1.type = "file";
file1.onchange = "NewFile1()";
file2 = document.createElement("input");
file1.id = "file2";
file2.type = "file";
file2.onchange = "NewFile2()";
file2.disabled = "true";

var textarea1 = document.createElement("textarea");
textarea1.id = "textarea1";
textarea1.widht = "400px";
textarea1.height = "300px";
textarea1.overflow = "auto";
textarea1.onKeyUp="count1()";

var i1 = document.createTextNode("Name");
var i2 = document.createTextNode("E-mail");
var i3 = document.createTextNode("URL");
var i4 = document.createTextNode("File");
var i5 = document.createTextNode("Commetns");
var i6 = document.createTextNode("Max - 1000, remains - ");
var i7 = document.createTextNode(" ");
p1.appendChild(i1);
p2.appendChild(i2);
p3.appendChild(i3);
p4.appendChild(i4);
p5.appendChild(i5);
p6.appendChild(i6);
p7.appendChild(i7);

body1.appendChild(div1);
//vivod
div1.appendChild(p1);
div1.appendChild(field1);
div1.appendChild(p2);
div1.appendChild(field2);
div1.appendChild(p3);
div1.appendChild(field3);
div1.appendChild(p4);
div1.appendChild(file1);
div1.appendChild(file2);
div1.appendChild(p5);
div1.appendChild(textarea1);
div1.appendChild(p6,p7);
div1.appendChild(field4);
div1.appendChild(p7);
div1.appendChild(button1);
//alert("777");
}


</script>

<STYLE>

</STYLE>

</HEAD>

<BODY>

<script type="text/javascript">

CreateForm1();

</script>

<BODY>

</HTML>

при решении столкнулся со следующими проблемами:
1. нужно,чтобы при выборе файла input - file, следующий объект file становился активным, затем появлялся еще 1 и так далее.
Попытался сделать событие onchange, и далее изменить свойство disabled - true, но событиене работает...
2. неработает событие кнопки send - onclick
3. как вывести в через javascript несколько объектовна одной строке?

koxt 05.10.2011 20:31

Прочитайте об оформлении кода здесь
2. В HTML обработчик onclick элемента input ссылается на строку,а созданный элемент JavaScript должен ссылаться на объект Function.

button1.onclick = sendms;


1. То же самое с файлом
file1.onchange = NewFile1;


Атрибут disabled элемента имеет булево значение.
file2.disabled = true;
file2.disabled = false;


Цитата:

Сообщение от dkachan (Сообщение 129701)
3. как вывести в через javascript несколько объектовна одной строке?

Что имеется ввиду?

dkachan 05.10.2011 23:55

спасибо, очень помогло.
насчет пункта 3 - если написать div1.appendChild(p1); div1.appendChild(field1);, то надпись и поле выведутся еа разных строках, а мне надо на одной, или 2 поля на одной строке, то есть без <br>

dkachan 06.10.2011 00:31

textarea1.onKeyUp = count1; так не работает... не срабатывает функция по вводу в textarea1.
почему не textarea1.onKeyUp = count1(); ?

koxt 06.10.2011 00:39

сравните варианты разметки:
<p>Name</p>
<input type="text" >

<label>Name</label><input type="text">

koxt 06.10.2011 00:52

textarea1.onkeyup = count1


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