想要在Check Box事件的转发器中添加TextBox。 on Checked调用JQuery Function,如果选中则值变为true并检查hdnQuesId,如果hdnQuesID == 1并且CheckBox选中它会动态地在该复选框之后添加一个文本框。
HTML:
<asp:Repeater runat="server" ID="rptMedical" OnItemDataBound="rptMedical_ItemDataBound" >
<HeaderTemplate>
<ul class="full question-list">
</HeaderTemplate>
<ItemTemplate>
<li class="full">
<p class="question full">
Q.<asp:Label runat="server" ID="lblQuestion" Text='<%# Eval("Question")%>'></asp:Label></p>
<asp:HiddenField runat="server" ID="hdnQuestionCode" Value='<%# Eval("QuestionCode")%>' />
<asp:HiddenField runat="server" ID="hdnQuestionId" Value='<%# Eval("Id")%>' />
<asp:Repeater runat="server" ID="rptMember">
<HeaderTemplate>
<ul class="full ans-list member-3">
</HeaderTemplate>
<ItemTemplate>
<li class="fl grid js-question-details-holder">
<div class="full answer-lable">
<asp:Label runat="server" ID="lblMemberName" class="fl check-option">
<label class="switch">
<input type="checkbox" id="chkAnsr" runat="server" value="false" class="switch-input js-member-question answerCheck">
<span data-off="No" data-on="Yes" class="switch-label full"></span><span class="switch-handle anim">
<i class="ui-icon-20 ico-switch-handle"></i></span>
</label>
</div>
</div>
</div>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
JQuery的:
$('.answerCheck').click(function () {
var objId = this.id;
var check = objId.split('_');
var hdnQuesId =$('#'+ prefix +'rptMedical_hdnQuestionId_'+check[3]).val();
if ($(this).is(':checked')) {
$('#' + objId).val("true");
var ans = $('#' + objId).val();
if (ans == true && hdnQuesId != 1)
{
$('.noki').addClass('hide');
}
else
{
var box = document.createElement("input");
box.setAttribute("type", "text");
box.setAttribute("value", "text");
box.setAttribute("runat", "server");
var x = document.getElementById((this).id);
x.appendChild(box);
$('.noki').removeClass('hide');
}
}
}
这没有在转发器中的特定行的复选框事件中的repater中添加文本框