2012-06-21 2 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 [Прерывание этой ошибки] \t $ (скрыть).css ({visibility: "hidden", height: "0"}); –

ответ

3

Проблема заключается в следующем:

$(hide) 

Это работает в IE, потому что IE делает глобальную переменную из каждого элемента с "Я бы". 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

Вы пытались использовать дисплей вместо видимость?

При использовании видимости й eelement занимает место, даже если не отображается, используя дисплей элемента брать не вечерять нет места, так что вам не нужно беспокоиться о высоты.

Кроме того, вы, кажется, с помощью JQuery, не могли бы вы Toogle видимость вашего DIV с помощью

$ (скрыть) .show();

$ (скрыть) .hide();

или просто

$ (скрыть) .toggle();

Эти ярлыки Jquery, которые используют CSS отображения свойство (see doc)

+0

Прекрасно работает. Спасибо Pointy –

Смежные вопросы