2012-07-13 209 views
-1

我想单击onclick函数时显示其他对象。当我点击那个按钮时,它会隐藏一个对象并显示另外两个对象。我已经将style.visibility设置为可见。但展示两个对象不起作用。显示HTML对象

更新样本:

<input type="submit" id="show" name="show" value="show" onclick="RemoveDoc(); document.getElementById('docname').style.visibility='hidden'; document.getElementById('browse').style.visibility='visible'; return false;" /> 
//browse input 
<input type ="file" name="browse" id="browse"> 

方法2:

//Using my RemoveDoc() function, I want the button of browse being show out. 
function RemoveDoc(Doc) 
{ 
xmlhttp1=new XMLHttpRequest(); 

xmlhttp1.open("GET","functions/remove.php?Doc="+Doc,true); 
xmlhttp1.onreadystatechange=function() 
{ 
    if (xmlhttp1.readyState==4 && xmlhttp1.status==200) 
    { 
      //when i run debugging, it says that the style of null.. 
    document.getElementById("browse").style.visibility='visible'; 

    } 
} 
xmlhttp1.send(); 

    return false; 
    } 
    </script>  

我尝试了两种方法,这也都显示着浏览按钮。 它应该叫出我的浏览对象,因为它是可见的..亲切的建议。

+0

你能发布所有相关的HTML代码,也是你的功能'RemoveDoc'? – 2012-07-13 12:44:26

+0

@Neal我猜他试过了他发布的代码。 – 2012-07-13 12:44:54

+0

@Hans没有完整的代码,我可以看到。 – Neal 2012-07-13 12:45:34

回答

1

http://jsfiddle.net/y3Bad/

有几件事情:你应该包括能见度代码的removeDoc功能的内部,处理器从JavaScript绑定,不标记。另外,你的变量xmlhttp1是一个隐式的全局变量。你的removeDoc函数带有一个参数Doc,但你永远不会传递任何东西。最后,removeDoc发出一个ajax调用,它是异步的,所以显示浏览按钮的代码行将不会立即执行,并且如果您的ajax调用失败,可能永远不会执行。

HTML:

<input type="button" id="show" name="show" value="show" /> 

JS:

​document.getElementById('show').onclick = function() { 
    // use display instead of visibility if you don't want the hidden element to take up space 

    // setting visibility to empty string will show the element 
    document.getElementById('browse').style.visibility = ''; 
};​ 
+0

所以你说我应该创建一个新的onclick函数?因为我的onclick现在与removeDoc链接.. – JLearner 2012-07-13 13:22:37

+0

它不适合我。似乎不能找到我的浏览ID。 – JLearner 2012-07-13 13:31:09

0

我使用这两个功能:

function hide(objId) { 
    document.getElementById(objId).style.display="none"; 
} 

function show(objId) { 
    document.getElementById(objId).style.display=""; 
} 
+0

display:none表示该元素将不会显示,并且不会占用页面上的空间。 visibility:hidden表示该元素不会显示,但仍然占用页面上的相同空间。 – 2012-07-13 12:44:27

0

也许你可以尝试使用jQuery的,是这样的: http://jsfiddle.net/7fJuu/

+0

我想我知道为什么。因为这些对象在我的if语句中。我可以选择将其隐藏起来吗? – JLearner 2012-07-13 14:12:08

+0

你可以在页面加载事件隐藏对象,使用jQuery: '$(function(){ //这里你可以调用hide()的对象 //例如$(#show).hide(); - 这将会隐藏按钮的ID =“显示” });' – philous 2012-07-13 15:10:23