rahulDer Ответов: 1

как решить ReferenceError: doStuff не определен TypeError: document.getElementById(...) в javascript ?


Я использую следующий код для своих нужд:
Я хочу, чтобы пользователь мог выбрать либо только текущую дату, либо одну предыдущую дату..

function checkdate() {
           
            var dt = document.getElementById("TextBox1").value;


            var currdt = new Date();
            if (dt != null) {
                var myDate_array = dt.split("/");



                var enteredDate1 = new Date(myDate_array[2], parseInt(myDate_array[1]) - 1, parseInt(myDate_array[0]) + 2);


                var today1 = new Date();
                if (enteredDate1 < today1) {
                    document.getElementById("TextBox1").value = "dd/MM/yyyy";
                    alert("Case File date must be greater than current date");
                    return false;
                }

                var enteredDate = new Date(myDate_array[2], parseInt(myDate_array[1]) - 1, myDate_array[0]);
                var today = new Date();
                if (enteredDate > today) {
                    document.getElementById("TextBox1").value = "dd/MM/yyyy";
                    alert("Case File date must be less than current date");
                    return false;
                }

            }


        }



HTML-код:

<asp:TextBox ID="TextBox1" runat="server" onfocus="if(this.value=='dd/mm/yyyy') this.value='';"

            onblur="if(this.value=='') this.value='dd/mm/yyyy';" Text="dd/mm/yyyy" onchange="javascript:checkdate();"></asp:TextBox>

этот код хорошо работает в моем новом проекте..но когда я реализую этот код на странице содержимого моего запущенного проекта ,у которого есть главная страница,он не работает, во время выполнения, в Inspect Element side я получаю ошибку типа:

ReferenceError: doStuff не определен
TypeError: document.getElementById(...) имеет значение null
TypeError: document.getElementById(...) имеет значение null


пожалуйста, предложите, что мне еще нужно, чтобы этот код работал правильно в запущенном проекте ..

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы можете отладить код, добавив debugger; в любом месте внутри кода.
Итак, отладьте и проверьте, на какой строке он выбрасывает исключение.

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

использовать это

var dt = document.getElementById('<%=TextBox1.ClientID%>');


rahulDer

спасибо, Картик..
но все же это дает ту же ошибку в инспектируемой стороне элемента :(

Karthik_Mahalingam

что doStuff ?

rahulDer

что я также не знаю..это любой тип недвижимости в JavaScript ?

Karthik_Mahalingam

найдите этот текст "достафф". в вас aspx-файл или javascript и ответ.
возможно, это какой-то нежелательный код..

rahulDer

Теперь "Достафф" эроор ушел, но
TypeError: document.getElementById(...) имеет значение null
продолжается ..

Karthik_Mahalingam

вы пробовали использовать clientid?

Karthik_Mahalingam

запустить страницу. щелкните правой кнопкой мыши на странице и просмотрите источник. и найдите элемент управления текстовым полем ... и запишите идентификатор..
используйте этот идентификатор в javascript.. надеюсь, это сработает..
просто попробовать.. :)

rahulDer

оба идентификатора равны..

Karthik_Mahalingam

убедитесь что вы используете идентификатор а не имя

rahulDer

да..я привык использовать..без названия

Karthik_Mahalingam

пробовал использовать отладчик ?

rahulDer

ya buddy,недавно проверил,но он все время переходит ко второму условию If и отображает связанные с ним msgs..

Karthik_Mahalingam

во-вторых, если условие ?

rahulDer

и в отладчике я нашел эту строку
ВАР ДТ = документ.метода getElementById('ContentPlaceHolder1_txtenqdate').значение;
что это значит ?

Karthik_Mahalingam

это означает, что контейнер управления, который присутствует на главной странице..
это будет выглядеть только так.. вот почему я сказал вам использовать <%= xx.ClientID%>

rahulDer

ya u-это обряд, nd m делает то же самое, но все еще не имеет результата..

Karthik_Mahalingam

какая теперь ошибка ?

rahulDer

какую бы дату я ни выбрал,это даст мне всплывающее предупреждение о втором, если условие типа "дата файла дела должна быть меньше текущей даты"..

Karthik_Mahalingam

var enteredDate1 = новая дата(myDate_array[2], parseInt(myDate_array[1]) - 1, parseInt(myDate_array[0]) );
использовать это ...

rahulDer

все еще давая ту же ошибку..nd, что +2 предназначен для того, чтобы позволить выбрать одну прошедшую дату..

Karthik_Mahalingam

эти вещи произойдут на buttton click или что ?
можете ли вы опубликовать код aspx..

rahulDer

нет,он не работает при нажатии кнопки, но он вызывается при изменении текста текстового поля ,
вот код aspx:
&ЛТ;АСП:текстовое поле с ID="txtenqdate" имя="текстовое поле" атрибут runat="сервер" CssClass="текстовое поле" ширина="200 пикселей"
onfocus="if(эта.значение=='ДД/ММ/гггг') это.значение=";" onblur="if(эта.значение==") это.значение='ДД/ММ/гггг';"
Текст="ДД/ММ/гггг" onChange, после="JavaScript для:checkdate();"&ГТ;
&ЛТ;%--&ЛТ;ajaxToolkit:CalendarExtender идентификатор="txtenqdate_CalendarExtender" атрибут runat="сервер" TargetControlID="поле textbox2" &ГТ;

--%>
&ЛТ;ajaxToolkit:CalendarExtender идентификатор="CalendarExtender2" атрибут runat="сервер" TargetControlID="txtenqdate"&ГТ;

..

Karthik_Mahalingam

ладно, ладно. я проверю и дам вам знать..