2014-11-26 2 views
-2

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

var div = document.getElementById('div'); 
var p = document.createElement('p'); 

var butt = document.createElement('input'); 
var inputOne = document.createElement('input'); 
var inputTwo = document.createElement('input'); 


div.appendChild(inputOne); 
div.appendChild(inputTwo); 
inputOne.SetAttribute="type","text"; 
inputOne.placeholder="Something"; 
inputTwo.SetAttribute="type","number"; 
inputTwo.placeholder="SomethingElese"; 
butt.type="button"; 
butt.value="clickMe!"; 
div.appendChild(butt); 
butt.onclick=func(); 
inputOne.SetAttribute="id","MyID"; 

function func(){ 
    var text = document.getElementById('MyID').value; 
    alert(text); 
} 
+0

У вас есть элемент с 'id =" div ", если нет, ваш' var div' будет 'undefined', все остальное не будет работать. 'setAttribute (имя, значение)', а не 'SetAttribute' является функцией. Вам нужно изучить синтаксис javascript, чтобы он работал, вы смешиваете вещи там. –

+0

Да, у меня есть. Ах, ладно, не понял, я отдам это. –

+0

Маленькая и очень хорошая книга для чтения и понимания - Дуглас Крокфорд. Javascript. Хорошие части. Я не согласен со всеми его утверждениями в книге, но он очень мал и разъяснит вам, как использовать его в очень хорошем путь. –

ответ

0

Из-за ошибок.

var div = document.getElementById('div'); 
var p = document.createElement('p'); 

var butt = document.createElement('input'); // really? I can think of better names 
var inputOne = document.createElement('input'); 
var inputTwo = document.createElement('input'); 


div.appendChild(inputOne); 
div.appendChild(inputTwo); 
inputOne.setAttribute("type","text"); // call this as a function with a lowercase "setAttribute" 
inputOne.placeholder="Something"; 
inputTwo.setAttribute("type","number"); // this too 
inputTwo.placeholder="SomethingElese"; 
butt.type="button"; 
butt.value="clickMe!"; 
div.appendChild(butt); 
butt.onclick=func; // pass the function by reference, not calling it 
inputOne.setAttribute("id","MyID"); // again 
0

Я получил его сейчас. Вот код результата - Спасибо!

var div = document.getElementById('myDiv'); 
var butt= document.createElement('input'); 
var inputOne = document.createElement('input'); 
var inputTwo = document.createElement('input'); 


div.appendChild(inputOne); 
div.appendChild(inputTwo); 
inputOne.setAttribute("type","text"); 
inputOne.placeholder="Something"; 
inputTwo.setAttribute("type","number"); 
inputTwo.placeholder="SomethingElse"; 
butt.type="button"; 
butt.value="ClickMe"; 
div.appendChild(butt); 
butt.onclick=func; 
inputOne.setAttribute("id","MyID"); 


function func(){ 
    var text = document.getElementById('MyID').value; 
    alert(text); 
} 
Смежные вопросы