Как скрыть или показать div на основе его содержимого - PullRequest
1 голос
/ 11 февраля 2010

Привет. Я пытаюсь скрыть / показать div на основе ответа AJAX. Я действительно не знаю, есть ли способ для этого?

Если ответ является ошибкой, показать текст ошибки и показать div (тот же div).

Если ответ не является ошибкой, показать текст успеха и скрыть div (такой же div).

Это как функция Facebook.

Я должен сделать это с помощью функции (й) JavaScript.

EDIT
Добавлена ​​информация из дубликата вопроса ОП:

Есть мои div.

<div id="messages"></div>
<div id="edit-address-book">
codes to edit the address book , input type - text, select , textearea etc...
</div>

Внизу есть один из моих простых запросов ajax. Это библиотека ajax, которую я использую -> http://en.dklab.ru/lib/JsHttpRequest/

 // Create new JsHttpRequest object.
 var req_update = new JsHttpRequest();
 // Code automatically called on load finishing.
 req_update.onreadystatechange = function() {
  if (req_update.readyState == 4) {
  document.getElementById("messages").innerHTML = req_update.responseJS.messages;
  document.getElementById("changed_address").value = req_update.responseJS.changed_address;
  }
 }

 document.getElementById("messages").innerHTML = req_update.responseJS.messages;

 req_update.responseJS.messages; // This is ajax respond part.

В адресной книге div, когда клиент нажимает кнопку обновления, появляется сообщение об ошибке или успешном выполнении ответа от ajax на сообщения div.

Например:

    Error Messages:
    -----------------
    Your First Name must contain a minimum of 2 characters.
    Your Last Name must contain a minimum of 2 characters.
    Your Street Address must contain a minimum of 5 characters.
    Your City must contain a minimum of 3 characters.
    Your State must contain a minimum of 2 characters.

    Success Message:
    --------------------
    Your address book has been successfully updated. (

Я попробовал это просто внизу, но это не сработало:

<script language="javascript" type="text/javascript">
if ( document.getElementById("messages").innerHTML == "<?php echo SUCCESS_MESSAGE; ?>" ) {
 hide_div('edit-address-book); //The div to hide the address book entries.
}
</script>

если в библиотеке jquery javascript есть предложение / решение, я тоже могу его использовать.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2010

Наконец-то я нашел решение. Это поможет пользователям, которые используют библиотеку AJAX "JSHttpRequest" (http://en.dklab.ru/lib/JsHttpRequest/). Вот оно:

Найти:

    document.getElementById("messages").innerHTML = req_update.responseJS.messages;
    document.getElementById("changed_address").value = req_update.responseJS.changed_address;

### Заменить на:

    document.getElementById("messages").innerHTML = req_update.responseJS.messages;

    if (req_update.responseJS.messages == "<?php echo SUCCESS_MESSAGE; ?>") {
        hide_div("edit-address-book");
    }

    document.getElementById("changed_address").value = req_update.responseJS.changed_address;
    }
0 голосов
/ 11 февраля 2010

Это должно сделать это.

EDITED

<body>

<script type="text/javascript">
    function teste(divId, text){
        var myDiv = document.getElementById(divId);

        if (myDiv.innerText.indexOf(text, 0) != -1) //could be replaced by any error veryfing logic
        {
            myDiv.style.visibility = "hidden";
            return 'Message 1';
        }
        else
        {
            myDiv.style.visibility = "visible";
            return 'Message 2';
        }
    }

</script>


<div id="MyDiv">blabla</div>

<script type="text/javascript">
    document.write(teste('MyDiv', 'blabla'));
</script>



</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...