在Javascript中获取ClientID

时间:2011-11-16 12:56:35

标签: javascript jquery asp.net

我有一个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部分添加对它的引用时它不起作用

3 个答案:

答案 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();
});