在我们当前的方案中,我们有一个Crystal Report,可以在保存/更改记录后立即显示。
我们要做的是在主数据管理表单中添加一个“打印”按钮-允许用户“按原样”打印现有报告。但是,如果用户更改了20多个字段中的任何一个(这些控件是复选,文本和下拉框的组合),我想禁用/隐藏打印按钮。
无需为每个控件添加代码更改事件,是否有办法(假设使用JavaScript)捕获对任何一个控件的更改,然后隐藏/禁用打印按钮,直到更改被保存?
编辑: 使用@Bosco提供的答案,以下代码是我们解决方案的示例:
<asp:DropDownList ID="TypeDDL" CssClass="dropDownList1 ChangeClass" runat="server"
<asp:TextBox ID="DescriptionTextBox" runat="server" class="descriptionText ChangeClass" TextMode="MultiLine"></asp:TextBox>
$(".ChangeClass").on("change", ManagePrintButton);
function ManagePrintButton() {
//debugger;
var btn = document.getElementById("btnPrintExport");
btn.style.display = "none";
}
答案 0 :(得分:1)
您可以使用jQuery通配符选择器。
让您输入相同的类名并以这种方式绑定更改事件
$(".theClass").on("change");
另一种方法是使用ID
假设ID以特定文本开头或以特定文本结尾
$("[id^=theText]")
//This gets all the elements that the id starts with theText
$("[id$=theText]")
//This gets all the elements that the id ends with theText