Поскольку ваш блок <script>
находится в теге <head>
, он выполняется до разбора документа.
Поэтому, когда вы пишете txt = $('#TextBox1')
, текстовое поле на самом деле еще не существует.
Чтобы это исправить, необходимо установить переменную txt
после загрузки документа (внутри #(function() { ... })
.
Например:
var txt;
$(function() {
txt = $('#TextBox1');
EnableDisableButtons();
txt.keyup(function() {
EnableDisableButtons();
});
});
TextBox1
выглядит как серверный элемент управления ASP.Net.
Если это так, его следует заменить на $('<%= TextBox1.ClientID %>
) , since ASP.Net assigns its own unique IDs to server-side controls. Alternatively, in ASP.Net 4.0, you can add
ClientIDMode = "Static" `для текстового поля.
Кроме того, выдолжен дать вашему текстовому полю осмысленное имя.