在我的.NET项目中,我在HTML页面中使用了一个带有隐藏<div>
的按钮。 <div>
包含插入公司的表单。
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中却没有。
有谁知道我需要做些什么来解决这个问题?
答案 0 :(得分:3)
问题在于:
$(hide)
这适用于IE,因为IE从具有“id”的每个元素创建一个全局变量。 Firefox不会这样做。
将对$(hide)
的所有引用更改为$('#hide')
。
答案 1 :(得分:1)
使用the jQuery hide
function隐藏元素,the show
function显示元素。
将高度设置为0是非标准的。
答案 2 :(得分:1)
您是否尝试过使用 display 属性而非可见性?
当使用可见性时,即使没有显示,元素占用空间,使用显示元素也不占空间,因此您不必担心高度。
此外,您似乎正在使用jQuery,是否可以使用
来识别div的可见性$(隐藏).show();
$(隐藏).hide();
或只是
$(隐藏).toggle();
这些是使用css display 属性(see doc)
的jQuery快捷方式