簡體   English   中英

Javascript:驗證ASP.NET中動態創建的單選按鈕列表控件

[英]Javascript: Validating dynamically created radio button list control in ASP.NET

我有一個ASPX頁面,在頁面加載中,我正在動態創建一些單選按鈕列表控件並呈現到瀏覽器。每個單選按鈕列表中都有2個列表項。一個是“是”,第二個是“否”。單選按鈕列表的數量可以現在是我的Java腳本代碼中的n.Now,我想知道單擊了哪個單選按鈕。 我已經在使用jQuery。任何簡單的方法來解決這個問題?

我呈現給瀏覽器的HTML是

<table border="0" id="tblQuestions">
    <tr>
        <td>Do you have a valid passport ?</td>
    </tr><tr>
        <td><table id="answer-1" border="0">
            <tr>
                <td><input id="answer-1_0" type="radio" name="answer-1" value="1" /><label for="answer-1_0">Yes</label></td>
            </tr><tr>
                <td><input id="answer-1_1" type="radio" name="answer-1" value="0" /><label for="answer-1_1">No</label></td>
            </tr>
        </table></td>
    </tr><tr>
        <td>Are you married ?</td>
    </tr><tr>
        <td><table id="answer-2" border="0">
            <tr>
                <td><input id="answer-2_0" type="radio" name="answer-2" value="1" /><label for="answer-2_0">Yes</label></td>
            </tr><tr>
                <td><input id="answer-2_1" type="radio" name="answer-2" value="0" /><label for="answer-2_1">No</label></td>
            </tr>
        </table></td>
    </tr>
</table>

提前致謝

以下代碼並未明確回答您的問題,但可能會有所幫助。 我會為您修改它,但現在沒有時間。

我在考試中使用它來警告用戶特定的問題沒有選定的答案。

問題是使用發出純xhtml的Server控件動態生成的。 我用相同的名稱(Q1,Q2 ...)命名所有選項,並像(Q1a,Q1b ...)一樣標識它們

要針對您的目的對其進行修改,也許您可​​以在j循環中構建所選選項的列表,即在“ break”語句所在的位置添加名稱-值對。

// Grabs all inputs - radio, checkbox, text, buttons and lists -sticks them in an array
allInputs = document.getElementsByTagName("input");
var last = "NameUnlikelyToBeUsedAsAnElementName";

// walk through the array
for (i = 0; i< allInputs.length; i++)
{
    var input = allInputs[i];
    if (input.name == last) continue; // if this object name is the same as the last checked radio, go to next iteration


    // checks to see if any  one of  similarly named radiobuttons is checked 
    else if (input.type == "radio" )
    {    
        last = input.name;  
        var radios = document.getElementsByName(input.name);
        var radioSelected=false;

         //iterate over question options
        for (j=0; j < radios.length; j++)
        {
            if(radios[j].checked)
            {
               radioSelected=true;
               break; // Found it, proceed to next question 
            }
        }
        if (!radioSelected) // no option selected
        {       // warn user, focus question
            alert("You did not answer question " + input.id.substring(0,input.id.length-1));
            input.focus();
            return false;
        }                   
    }

}

return true;

假設您的頁面中已經包含了jquery。

在單選按鈕項上定義一個類,基本上您的客戶端HTML應該看起來像<input id="answer-2_1" type="radio" name="answer-2" value="0" class="myrdo" />

現在,在您的js代碼中,只需在類上連接一個事件處理程序

$(".myrdo").bind("click",function(){if($(this).attr("checked")==true) {alert($(this).val);} });

上面的命令只會警告所選單選按鈕的值。

暫無
暫無

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

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