我有一个 javascript 文件,它使用 jQuery 选择一个按钮并检查它是否有效。代码是:
$(document).ready(function () {
$('#<%= btn_Insert.ClientID %>').on("click", function (event) {
if (Validate() != true) {
event.preventDefault();
}
});
function Validate() {
return (1 == 1);
});
但我无法获取按钮的 ClientID
并且出现此错误:
Object doesn't support this property or method
我的错误在哪里?如何获取服务器端 Button 的客户端 ID?
谢谢
编辑 1)
当我在页面的 head
部分添加脚本时它可以工作,但是当我将它写入 JS 文件并在 head
部分添加对它的引用时它不起作用
最佳答案
我怀疑错误来自于 event
在某些浏览器中有特殊含义。尝试重命名变量:
function Validate() {
return (1 === 1);
}
$(function () {
$('#<%= btn_Insert.ClientID %>').on('click', function (evt) {
if (!Validate()) {
evt.preventDefault();
}
});
});
或者更简单:
$('#<%= btn_Insert.ClientID %>').on('click', function() {
return Validate();
});
更新:
既然您已经编辑了问题,那么问题出在哪里就很清楚了。您正在尝试在单独的 javascript 文件中使用服务器端标记 ( <%= %>
)。这不可能。它们将按字面意思呈现,不会被 ASP.NET 处理。
为了解决您的问题,您可以将 CSS 类应用于按钮,然后使用类选择器:
$('.someClass').on('click', function() {
...
});
另一种可能性是使用 ends with selector :
$('[id$="btn_Insert"]').on('click', function() {
...
});
关于javascript - 在 Javascript 中获取 ClientID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152049/