我有一个javascript文件,使用jQuery选择一个按钮并检查它是否验证。代码是:
$(document).ready(function () {
$('#<%= btn_Insert.ClientID %>').on("click", function (event) {
if (Validate() != true) {
event.preventDefault();
}
});
function Validate() {
return (1 == 1);
});
但我可以'获取ClientID
按钮,我收到此错误:
Object不支持此属性或方法
我的错误在哪里?如何获取服务器端Button的客户端ID?
感谢
编辑1)
当我在页面的head
部分添加脚本时,它可以工作,但是当我将它写入JS文件并在head
部分添加对它的引用时它不起作用
答案 0 :(得分:6)
我怀疑错误来自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() {
...
});
答案 1 :(得分:0)
答案 2 :(得分:0)
只需将ClientIDMode="Static"
添加到您的服务器按钮控件并在js w / o问题中使用其ID:
$('btn_Insert').on('click', function() {
return Validate();
});