2011-05-13 76 views
0

我有以下函數從JSON對象寫入多項選擇題。Javascript如何用事件偵聽器移動變量?

首先,事件偵聽器是在這裏創建的「合法」嗎? 如果是這樣,我希望偵聽器(validate)執行的函數獲取單擊「submit」的表單的編號以及檢查的複選框的編號。 我該怎麼做? thanx。

function writeQuestions() { 

len = questions.qestion.length; 
for (var i = 0; i < len; i++) { 

     answerRdy = []; 
     qestionRdy = questions.qestion[i]; 
     answerRdy[0] = questions.answer[i][0]; 
     answerRdy[1] = questions.answer[i][1]; 
     answerRdy[2] = questions.answer[i][2]; 
     answerRdy[3] = questions.answer[i][3]; 
     divID = "question-" + i; 
     formID = "form-" + i; 
     CurrentForm = i; 

      writeAnswer = []; 
      writeAnswer[writeAnswer.length] = ("\n<div id='{0}'>\n<form id='{1}' name='{1}'>\n").format(divID, formID); 
      writeAnswer[writeAnswer.length] = ("<b>" + qestionRdy + "</b><br />\n"); 
     for (n=0; n<=3; n++) { 
      writeAnswer[writeAnswer.length] = ("<input type='radio' name='answerTo{0}' value='{1}' /> {2} <br />\n").format(CurrentForm, n, answerRdy[n]); 
       } 
      writeAnswer[writeAnswer.length] = ("<input type='submit' value='Submit your answer'>\n</form>\n</div><!--{0}-->").format(divID); 


     joinQuestion = writeAnswer.join(); 
      exp = /,/gi; 
     fullQuestion = joinQuestion.replace(exp, ""); 

    $('#container').append(fullQuestion); 
    document.forms[i].addEventListener('submit',validate); 
} 
} 
+0

是每一個問題一個單一的形式? – 2011-05-13 08:54:04

回答

1

你可能最好附加提交事件使用jQuery提交()這樣的功能將成爲形式的一部分提交事件處理程序

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("form").submit(function(){ 
    alert($(this).attr("id")); 
    alert("Checked radio " + $(this).find("input:checked").val()) 
    //return false if you do not want to submit the form, otherwise comment it out 
    return false; 
    }); 
    }); 

</script> 

<form id="{1}"> 
<input type="radio" name="answer" value=1> 
<input type="radio" name="answer" value=2> 
<input type="submit" value="submit"> 
</form> 
<form id="{2}"> 
<input type="radio" name="answer" value=3> 
<input type="radio" name="answer" value=4> 
<input type="submit" value="submit"> 
</form> 
0

你應該聽取點擊提交按鈕和表單onclick應該返回false。使用像jquery這樣的框架來實現這些類型的功能。