我正在尝试使用javascript / jquery在单击复选框时禁用按钮,但是我很难过。
<asp:ListView runat="server" ID="lvApplicationForms" OnItemCommand="lvAttachedDocuments_OnItemCommand"
DataKeyNames="FormID" OnPreRender="lvApplicationForms_PreRender" OnItemDataBound="lvApplicationForms_ItemDataBound">
<LayoutTemplate>
<table class="formData_tb" style="margin-top: 0px" cellspacing="0px" width="590px">
<asp:PlaceHolder ID="itemplaceholder" runat="server" />
<tr style="background-color: #dedede">
<td class="fieldData_td"></td>
<td class="fieldName_td" colspan="2">All Documents
</td>
<td class="fieldData_td" style="text-align: center">
<asp:CheckBox ID="cbSignAll" runat="server" Text="" onclick="javascript:return CheckedChange(this)" />
</td>
<td class="fieldData_td" style="text-align: center">
<asp:CheckBox ID="cbExposeAll" runat="server" Text="" onclick="javascript:return CheckedChange(this)" />
</td>
<td class="fieldData_td" colspan="3" style="text-align: right">
<asp:Button ID="btnSaveChanges" runat="server" Text="Save" Style="width: 80px;" CssClass="formButton"
OnClick="btnSaveChanges_Click" OnClientClick="EnableUploadValidators(false)" />
</td>
</tr>
</table>
</LayoutTemplate>
出于测试目的,我有一个javascript函数,当选中复选框(ID&#39; s:cbSignAll,cbExposeAll)时会触发该函数。 javascript需要禁用保存按钮(ID:btnSaveChanges)。
我能够启动javascript功能,但我似乎无法抓住按钮的属性来禁用它。
使用Javascript:
function CheckedChange(objCheckBox) {
$('.btnSaveChanges').attr('disabled', 'disabled');
}
答案 0 :(得分:1)
ASP在ID的开头修改元素的ID并预先形成表单和其他数据,在这种情况下,它还在末尾添加元素的索引。 (使用开发工具查看)
您可以使用通配符选择器来获取所需的元素:
$("[id*=btnSaveChanges]").attr("disabled", true);
答案 1 :(得分:0)
从jQuery 1.9开始,你应该在编辑disabled属性时使用prop()。
function CheckedChange(objCheckBox) {
$('#btnSaveChanges').prop('disabled', true);
}
正如其他答案中所述,asp子控件可以修改其id,除非你声明ClientIDMode =&#34; Static&#34;对于页面,所以你需要确保id正确或将选择器改为@Tomislav Muic的答案中所示的类似选择器。