javascript - 在 Javascript 中获取 ClientID

标签 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 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/

相关文章:

javascript - 标题属性在 IE11 中不起作用

asp.net - 部署阶段/生产应用程序设置 Asp.net Core

java - Htmlunit 通过单击按钮跳过页面

c# - 有没有办法自定义 Thinktecture.IdentityServer.v2 登录页面?

c# - 如何将简单日期从文本框转换为mysql中的日期时间?

javascript - 带有 jQ​​uery appendTo 的表

javascript - 有没有办法使用 OpenLayers 更改 openstreetmap 中某些功能的颜色?

javascript - 如果发生验证错误,Ajax 表单将发送两次

javascript - 如何将用户重定向到引用页面

javascript - 导航低于元素 - z-index 不工作