2

In my .NET project I'm using a Button in HTML page that brings a hidden <div>. That <div> contains a form to insert a company.

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("");
}

So basically in IE when I push the button AddCompany the hidden <div> appears, but in FF doesn't.

Does anyone know what I need to do to fix this?

4

3 に答える 3

3

問題はこれです:

$(hide)

IEは「id」を持つすべての要素からグローバル変数を作成するため、IEで機能します。Firefox はそれをしません。

へのすべての参照を$(hide)に変更し$('#hide')ます。

于 2012-06-21T13:50:23.617 に答える
1

要素を非表示にするには jQueryhide関数を使用し、要素を表示するにshow関数を使用します。

高さを 0 に設定することは非標準です。

于 2012-06-21T13:46:46.993 に答える
1

visibilityの代わりにdisplayプロパティを使用してみましたか?

可視性を使用すると、表示されていなくても e 要素がスペースを占有しますが、displayを使用すると、要素は sup を使用しないため、高さを気にする必要はありません。

また、あなたはjQueryを使用しているようです。

$(hide).show();

$(hide).hide();

または単に

$(hide).toggle();

これらは、css表示プロパティを使用する jQuery ショートカットです(ドキュメントを参照) 。

于 2012-06-21T13:50:07.057 に答える