如何根据其内容隐藏或显示div

时间:2010-02-11 17:44:21

标签: javascript ajax

您好我正在尝试隐藏/显示基于AJAX响应的div。我真的不知道,有没有办法呢?

如果响应是错误,请显示错误文本并显示div(相同的div)。

如果响应不是错误,请显示成功文本并隐藏div(相同的div)。

就像facebook功能一样。

我应该使用javascript函数。

修改
从OP的重复问题中添加了信息:

有我的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库 - &gt; 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 :(得分:0)

最后我找到了解决方案。它将帮助使用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;
    }

答案 1 :(得分:-1)

这应该这样做。

<强> 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>