2012-07-13 111 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