2013-02-08 4 views
-1

Я пытаюсь работать над формой. В настоящее время кнопка отключена. Но когда вы нажимаете на флажок, кнопка должна быть включена, а затем снова отключена, если у вас не установлен флажок. Я не могу заставить кнопку активироваться, когда я нажимаю на флажок. Наверное, что-то не так с моей петлей. Цикл находится в функции checkAge. Любое решение?кнопка включения и выключения не работает

Javascript

function checkAge(e){ 

var theTarget = e.target ? e.target : e.srcElement; 
alert(theTarget.id); 

var form = document.getElementById("form"); 
if (document.getElementById("content")) { 
    form.removeChild(document.getElementById("content")); 
} 

if(theTarget.id == "fourteen"){ 
    var newDiv = document.createElement("div"); 
    newDiv.setAttribute("id", "content"); 

    var br = document.createElement("br"); 
    newDiv.appendChild(br); 
    var br = document.createElement("br"); 
    newDiv.appendChild(br); 

    newDiv.appendChild(document.createTextNode("Vilka seriefigurer träffade du?")); 

    var br = document.createElement("br"); 
    newDiv.appendChild(br); 

    var musse = document.createElement('input'); 
    musse.setAttribute("type", "checkbox"); 
    musse.setAttribute("name", "musse"); 
    musse.setAttribute("value", "musse"); 
    musse.setAttribute("id", "musse"); 
    newDiv.appendChild(musse); 
    newDiv.appendChild(document.createTextNode("Musse")); 

    var br = document.createElement("br"); 
    newDiv.appendChild(br); 

    var adi = document.createElement('input'); 
    adi.setAttribute("type", "checkbox"); 
    adi.setAttribute("name", "adi"); 
    adi.setAttribute("value", "adi"); 
    adi.setAttribute("id", "adi"); 
    newDiv.appendChild(adi); 
    newDiv.appendChild(document.createTextNode("Ådi")); 

    var br = document.createElement("br"); 
    newDiv.appendChild(br); 

    var bamse = document.createElement('input'); 
    bamse.setAttribute("type", "checkbox"); 
    bamse.setAttribute("name", "bamse"); 
    bamse.setAttribute("value", "bamse"); 
    bamse.setAttribute("id", "bamse"); 
    newDiv.appendChild(bamse); 
    newDiv.appendChild(document.createTextNode("Bamse")); 

    var br = document.createElement("br"); 
    newDiv.appendChild(br); 

    var input = document.createElement("input"); 
    input.setAttribute("type", "submit"); 
    input.setAttribute("name", "submit"); 
    input.setAttribute("id", "submit"); 
    input.setAttribute("value", "Skicka"); 
    newDiv.appendChild(input); 

    form.appendChild(newDiv); 

    var inputs = document.getElementsByTagName("input"); 
    for(i=0; i<inputs.length; i++){ 
     input.disabled = true; 
     if(inputs[i].type == "checkbox" && inputs[i].checked){ 
      input.disabled = false; 
     } 
     else{ 
      input.disabled = true; 
     } 

    } 

} 
+1

Вы действительно не можете сузить проблему до менее 200 строк кода? –

+0

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

+0

Игнорировать все остальное, кроме функции checkAge. – DrWooolie

ответ

2

При создании флажков, вы не приложите никаких событий к ним. Ваш цикл, чтобы отключить ввод, происходит только при создании части checkAge формы и никогда не выполняется снова. Если вы прикрепляете даже к флажкам, то это должно решить вашу проблему.

Кроме того, функция checkAge добавляет в документ флажки, но вы никогда не обновляете свой массив inputs, чтобы включить эти флажки.

Возможно, вам захочется сначала добавить все элементы HTML на страницу и использовать дисплей: none/display: block, чтобы скрыть/показать элементы.

+0

Благодарим за помощь! – DrWooolie