簡體   English   中英

Javascript如何用事件監聽器移動變量?

[英]Javascript how to move variables with event-listener?

我有以下函數,可從JSON對象寫入多項選擇題。

首先,這里的事件偵聽器創建是否“合法”? 如果是這樣,我希望由偵聽器執行的函數(驗證)獲取單擊了“提交”的表單的編號,以及選中的復選框的編號。 我怎樣才能做到這一點? 謝謝。

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);
}
}

您最好使用jquery commit()附加Submit事件,這樣該函數將成為表單Submit事件處理程序的一部分。

<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>

您應該監聽提交按鈕的點擊,表單onclick應該返回false。 使用諸如jquery之類的框架來實現這些類型的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM