Вопрос

Я получил функцию в JavaScript, которые сначала проверяют, является ли имя пользователя необходимой длиной и чем отправляет имя пользователя на страницу для теста, если тест успешно, будет<span id="username">true</span>еще<span id="username">false</span>

Я продолжаю получать ошибку, что GETELEMANCEBYID не существует на возвратных данных

  function checkuser(user, wd,id, sub)
    {
        if(user.length < 7)
        {
            document.getElementById(id).innerHTML = "Your username is too short. It must be longer than 6 charaters";
            document.getElementById(sub).disabled = true;
            return false;
        } else {
            $.post(wd + "register/checkuser/" + user,
                       function(data){
                         alert("Data Loaded: " + data.getElementById('username').innerHTML;
                       });
        }
    }
Это было полезно?

Решение

Вы должны сделать это:

function checkuser(user, wd, id, sub) {
  if(user.length < 7) {
    $("#"+id).html("Your username is too short. It must be longer than 6 characters");
    $("#"+sub).attr("disabled", true);
    return false;
  }
  else {
    $.post(
      wd + "register/checkuser/" + user,
      function(data){
        alert("Data Loaded: " + $(data).find("#username").html());
      }
    );
  }
}

Другие советы

То data Возвращаемое значение - это строка, а не Domdocument - таким образом у него нет функции члена GetElementByID.

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

Если вы не можете изменить страницу, которая выполняет тестирование / возвращение, то вам нужно найти другой способ анализа строки возврата, которая обслуживает ваши цели.

Попробуй это:

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });

Или это, в зависимости от структуры HTML возвращена:

   function(data){
       alert( "Data Loaded: " + $(data).filter('#username').html() );
   });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top