2012-06-21 71 views
2

在我的.NET項目中,我在HTML頁面中使用了一個帶有隱藏<div>的按鈕。 <div>包含一個插入公司的表單。JavaScript適用於IE,但不適用於Firefox

HTML:

<div class="top-div-where-is-my-ADD-button"> 
    <h2> 
     Search: 
     <input type="text" id="search" /> 
     <div id="divADD" onclick="AddCompany()"> 
      <span>Add Company</span></div> 
    </h2> 
</div> 

    <div id="hide" style="visibility: hidden; height: 0px; padding-bottom: 10px;"> 
    <table id="CompanyDetails" class="company" style="width: 100%; text-align: center;"> 
......... 
</div> 

的JavaScript:

function AddCompany() { 
    HideCompany(); 
    $(hide).css({ visibility: "visible", height: "auto" }); 
    var a = document.getElementById("divbuttonSaveCompany"); 
    a.onclick = InsertCompany; 
} 

function InsertCompany() { 
    var a = document.getElementById("Name").value; 
    var b = document.getElementById("Address").value; 
    var c = document.getElementById("Country").value; 
    var d = document.getElementById("Phone").value; 
    var e = document.getElementById("Fax").value; 
    var f = document.getElementById("Email").value; 
    var gg = document.getElementById("Contact"); 
    var g = gg.options[gg.selectedIndex].value; 
    $.ajax({ 
     url: '@Url.Action("AddCompany", "Company")', 
     data: { nameCompany: a, address: b, country: c, phone: d, fax: e, email: f , contact: g}, 
     dataType: "html", 
     type: "POST", 
     error: function() { 
      alert("error"); 
     }, 
     success: function (data) { 
      alert("Company was successfully added! "); 
      $("#all").html(data); 
     } 
    }); 
} 
function HideCompany() { 
    $(hide).css({ visibility: "hidden", height: "0" }); 
    $("#Name").val(""); 
    $("#Address").val(""); 
    $("#Country").val(""); 
    $("#Phone").val(""); 
    $("#Fax").val(""); 
    $("#Email").val(""); 
} 

所以在IE基本上,當我按下按鈕AddCompany隱藏<div>出現,但在FF沒有。

有沒有人知道我需要做什麼來解決這個問題?

+2

FF控制檯中的任何錯誤? –

+1

我想你沒有在[tag:hidden]標籤上看到大的「不要使用」提示。 – Ryan

+0

在FF控制檯我有這樣的:ascunde沒有定義 HideCompany()機構(線167) AddCompany()機構(線134) 的onclick()的onclick(線2) 事件=點擊clientX = 1172,clientY = 187 [Break On This Error] \t $(hide)。css({visibility:「hidden」,height:「0」}); –

回答

3

問題是這樣的jQuery的快捷鍵:

$(hide) 

,在IE瀏覽器,因爲IE瀏覽器,使全局變量從與每個元素的作品「ID」。 Firefox不會那樣做。

將所有對$(hide)的引用更改爲$('#hide')

+0

嗯,這很有趣。我剛纔認爲它是在別處定義的,但你可能是對的。有些MS男生有奇怪的想法... –

+0

謝謝。這是詭計! –

+0

@MikeThunder不要忘記[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。這將幫助其他用戶找到答案。 –

1

使用the jQuery hide function來隱藏一個元素,而the show function來顯示它。

將高度設置爲0是非標準的。

+0

將高度設置爲零有什麼問題? – Pointy

+1

這不是正確的隱藏方式。根據其他元素,它可能有副作用。它甚至不總是工作。如果你想隱藏,隱藏。 –

+0

嗯,我不認爲這是這裏的問題。 – Pointy

1

您是否嘗試過使用display property而不是的可見性

當使用知名度日eelement佔用空間即使不顯示,使用顯示元素採取坐席沒有空間,所以你並不需要擔心高度

而且你似乎是使用jQuery,你可以的toogle您的div使用

$(隱藏)能見度.show();

$(hide).hide();

或者乾脆

$(隱藏).toggle();

這些是使用CSS 顯示財產(see doc)

+0

現在完美運作。謝謝Pointy –

相關問題