jQuery不使用母版页

我有一些单独工作的代码但是当我在Master页面添加它时,它无法正常工作。 我认为jQuery不能与Update Panel一起使用,所以我也删除了它,但仍然没用。 我相信这是Master Page的一些问题。 任何人都可以看看并给出任何建议。

 Adhoc ArchivingTest Page     $(document).ready(function () { alert(2); function isDate(txtDate) { var currVal = txtDate; if (currVal == '') return false; //Declare Regex // var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; var rxDatePattern = /^(\d{4})(\d{1,2})(\d{1,2})(\d{1,2})(\d{1,2})(\d{1,2})$/ var dtArray = currVal.match(rxDatePattern); // is format OK? if (dtArray == null) return false; //Checks for mm/dd/yyyy format. // dtMonth = dtArray[1]; // dtDay = dtArray[3]; // dtYear = dtArray[5]; dtMonth = dtArray[2]; dtDay = dtArray[3]; dtYear = dtArray[1]; ddhours = dtArray[4]; ddminute = dtArray[5]; ddseconds = dtArray[6]; if (ddhours > 24) return false; if (ddminute > 60) return false; if (ddseconds > 60) return false; if (dtMonth  12) return false; else if (dtDay  31) return false; else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) return false; else if (dtMonth == 2) { var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0)); if (dtDay > 29 || (dtDay == 29 && !isleap)) return false; } return true; } $(function () { $('#txtname').blur(function (e) { alert(1); // var GetValue = $('#txtname').val(); var txtVal = $('#txtname').val(); if (isDate(txtVal)) alert('Valid Date format'); else alert('Invalid Date format'); }); }); });  <%-- 
--%>
ENTER REPORT VERSION DATE: : &nbsp&nbsp(Must enter in format YYYYMMDDHHMMSS) <%-- --%>
<%--
--%><%----%><%----%>

这里可能有两件事情。

首先,您的控件可能被分配了与您提供的控件不同的唯一ID。 您可以使用Milind或ZiNNED的建议或按类名引用它们:

  $(".text-name") 

另一个是,由于您使用的是UpdatePanel,因此一旦更新发生,事件可能会被分离。 要解决此问题,请使用.on()

 $(document).on("blur", ".text-name", function (e) { alert(1); var txtVal = $(this).val(); if (isDate(txtVal)) { alert('Valid Date format'); } else { alert('Invalid Date format'); } }); 

这是因为服务器端控件的ID在与母版页一起使用时会被修改。 在这种情况下使用ClientID绑定事件:

 $('#<%=txtname.ClientID%>').blur(function (e) { //rest code }); 

使用母版页更改ASP控件的ID。 要像以前一样继续使用id,可以将ClientIDMode属性设置为Static ,如下所示: