0

asp.netウィザード コントロール内にいくつかのラジオ ボタンがあります。

マークアップをよりよく理解するには:

<asp:Wizard ID="WizardCreateDL" runat="server" ActiveStepIndex="0" BackColor="#F7F6F3"
        BorderColor="#CCCCCC" BorderWidth="1px" Font-Names="Calibri" Font-Size="0.8em"
        Height="337px" Width="800px" OnNextButtonClick="WizardCreateDL_NextButtonClick"
        OnCancelButtonClick="WizardCreateDL_CancelButtonClick" OnPreviousButtonClick="WizardCreateDL_PreviousButtonClick"
        DisplaySideBar="False" BorderStyle="Solid" OnFinishButtonClick="WizardCreateDL_FinishButtonClick">
        <StepStyle BorderWidth="0px" />
        <WizardSteps>
            <asp:WizardStep ID="stepCreateFolder" runat="server" Title="FolderOptions" >
                <div id="dvFolderOptions" runat="server" style="text-align: left; width: 45%; margin: auto; font-size:medium">
                    <ul style="list-style: none;">
                        <li>
                            <input type="radio" id="rdbCalendar" value="0" name="Cal" onclick="appendChild(this);" /><label for="rdbCalendr">Calendar</label></li><br />
                        <li>
                            <input type="radio" id="rdbTasks" value="0" name="Cal" onclick="appendChild(this);"  /><label for="rdbTasks">Tasks</label></li><br />
                        <li>
                            <input type="radio" id="rdbContacts" value="0" name="Cal" onclick="appendChild(this);"  /><label for="rdbContacts">Contacts</label></li>
                    </ul>
                </div>
            </asp:WizardStep>
        </WizardSteps>
        <StartNavigationTemplate>
            <asp:Button ID="StepNextButton" runat="server" CausesValidation="False" CommandName="MoveNext"
                Font-Names="Calibri" Font-Size="1.3em" Text="Next" Visible="false" />
            <asp:Button ID="btnFinish" runat="server" Font-Names="Calibri" Font-Size="1.3em"
                Text="Finish" Visible="false" CausesValidation="False" OnClick="btnFinish_Click" />
        </StartNavigationTemplate>
    </asp:Wizard>

js イベント:

function appendChild(crnt) {
            alert('hi');
            var parentLi = $(crnt).parents('li:first');
            if (parentLi.find('ul:first').length == 0) {
                var Container = $('<ul></ul>').append('<li><input type="radio" id="rdbEditor" value="0" onclick="secondLevelChild();" /><label for="rdbEditor">Editor</label></li><li><input type="radio" id="rdbReviewer" value="0" onclick="secondLevelChild();"  /><label for="rdbReviewer">Reviewer</label></li>')
                parentLi.html(Container);
            }
        }

私はこのイベントを発生させるのに苦労しており、これを行うための可能な方法も試しました:

$(function () {
  $('#ContentPlaceHolder1_WizardCreateDL_dvFolderOptions').find('li').each(function   () {
        $(this).find('input:radio').click(function () {
            appendChild(this);
            alert('1+2+3');
        });
    });

});

しかし、発射する準備ができていません。助けはありますか??

4

5 に答える 5

2

コードを試してみると、「appendChild」は組み込みのjs関数のようで、エラーが発生するため、その名前を「appendChild1」などの別のものに変更すると、正常に機能しました。試してみてください...

于 2012-12-26T06:50:23.710 に答える
1

以下のコードを試していただけますか

$('#<%=dvFolderOptions.ClientID %> li input:radio').click(function()
{
appendChild(this);
}
于 2012-12-26T06:25:56.523 に答える
1

関数名 appendChild を別の名前に変更します。

これを変更

function appendChild(crnt) {
    // code goes here
}

function appendMyChild(crnt) {
    // code goes here
}
于 2012-12-26T06:48:32.543 に答える
0

これを試して

$('[id$=dvFolderOptions]').delegate('li input:radio', 'click', function(){ 
            appendChild(this);
            alert('1+2+3');
        });
于 2012-12-26T06:28:29.403 に答える
0

これを使って

$('#<%=dvFolderOptions.ClientID %>').find('li').each(function () {

それ以外の

$('#ContentPlaceHolder1_WizardCreateDL_dvFolderOptions').find('li').each(function   () {

私はちょうどテストし、それが動作します!

于 2012-12-26T06:28:38.873 に答える