powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В ajax сценарии не получается удалить элемент
4 сообщений из 4, страница 1 из 1
В ajax сценарии не получается удалить элемент
    #36150078
Usik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем ситуация такая , есть форма в которой одно поле-эдит и кнопка сабмит. По нажатию сабмита, данные передаются и проверяются php сценарием и тот в формате Json отвечает, мол правильные данные были введены или нет.

Если данные верные то все ок, если нет то ниже эдита должно писаться красным цветом:"Заполните поле" или еще что-нить. В общем если данные некорректны , то функция
Код: plaintext
create_notice(parent_id,type,elem_id,message)
создает в родительском элементе новый элемент и заполняет его соответствующим предупреждением.

Итак, допустим я умышленно ввел некорректные данные. Нажимаю Submit-все хорошо, предупреждение пишется. Потом не исправляя ничего в поле ввода опять нажимаю на Submit, как результат предупреждающая надпись появляется снова.

Чтобы такого не было я вызываю передфункцией
Код: plaintext
create_notice(parent_id,type,elem_id,message)
функцию
Код: plaintext
delete_notice(id)
, которая удаляет (если есть) элемент с предупреждающей надписью (ищет его по id).

Вопрос, почему-то удалять никак не хочет. Что я не так сделал?


Код: plaintext
1.
2.
3.
4.
function CreateObject()
 {
 ....
 }
Возвращает объект XMLHTTPRequest.

Функция Create_notice вызывается если пользователь не заполнил поле формы. Ее задача в том чтобы ниже Эдита написать предупреждающее сообщение.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function create_notice(parent_id,type,elem_id,message) 
{
    
    try
      { 
         var parent = document.getElementById(parent_id);
         var new_elem = document.createElement(type);
         new_elem.id=elem_id;
         new_elem.style.color='red';
         var text=message;
         var textNode = document.createTextNode(text);
         parent.appendChild(new_elem);
         new_elem.appendChild(textNode); 
     }   
 catch(e)	
      {
 
      };
}
Функция delete_notice
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function delete_notice(id)
 {
   try
   {
        document.getElementById(id).parentNode.removeChild(id);
   } 
  catch(e)	
   {
     alert(id);
   }
 } 

Вот взаимосвязь этих функций
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
//------------------------------------------------------------------
var http = createObject();
//------------------------------------------------------------------

 function login()
  {
    var email = encodeURI(document.getElementById('id_email').value);
    var nocache= Math.random();
    http.open('get', 'login.php?email='+email+'&nocache' = +nocache,true);
    http.onreadystatechange = loginReply;
    http.send(null);
  }
//--------------------------------------------------------------------
function loginReply()
  {
     var response;
     
    if ( http.readyState ==  4  ) 
      {
       if ( http.status ==  200  ) 
         {  
           response = http.responseText; 
           var data=eval( "(" + response + ")" );
          //----------------------------------
           delete_notice('email_notice'); 
           if  (data.email_notempty==null)//Ответ от php-сценария (JSON) 
              create_notice('email_td','font','email_notice','Заполните поле E-mail.') ;
          //----------------------------------			   
          http = null;     
          http = createObject();
       }         
       else 
         alert( "There was a problem with the URL." );
        }
   };

...
Рейтинг: 0 / 0
В ajax сценарии не получается удалить элемент
    #36150388
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, как же все сложно ... если ты дорос уже до более-менее серьезных проектов, то надо заставлять себя экономить свое время и место кода - юзать фреймворки.
Весь твой приведенный код на jQuery поместится в 3-4 строчки, да к тому же совершенно кроссбраузерно и без трай-кетчей, к тому же, добавив символов 20, можно скрытие надписей анимировать.
Ошибки не вижу, хотя понимаю и чувствую, что она в функции delete_notice, но настоятельно советую прислушаться к совету использовать фреймворк.
...
Рейтинг: 0 / 0
В ajax сценарии не получается удалить элемент
    #36150403
Usik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так стоп, что мне там изучить то надо , Jquery+Ajax, так?
...
Рейтинг: 0 / 0
В ajax сценарии не получается удалить элемент
    #36150472
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да "там" все так просто, что и изучать-то особо не надо - подключай и пользуйся ...
ajax очень плотно "инкапсулирован" в jQuery, так что в отдельную тему не стоит выделять.
Удобно пользоваться "родным" сайтом jQuery , но есть очень хороший перевод с комментариями.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В ajax сценарии не получается удалить элемент
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]