2014-01-28 4 views
0

Я хотел бы скрыть форму внутри кнопки. Скрытие формы выполняется, но проблема в том, что размер области скрытых форм отображается как пустая область под моим ящиком, поэтому у меня есть большое пространство между нижней частью кнопки и содержимым под кнопкой, например. другая кнопка.Скрытая форма показывается пустая область

Кнопка Код

<button class="myButtonl" onclick='showForm();'>Create a Player</button> 

Форма Код

<div id="div1" style="visibility:hidden;"> 
    <form action="team.php" method="POST" name="profiles"> 
     <div>Team Name: <input type="text" name="psn" value=""></div> 
     <input type="submit"> 
    </form> 
</div> 

Javascript

<script> 
    function showForm() { 
     document.getElementById('div1').style.visibility= 'visible' ; 
    } 
</script> 

Я предполагаю, что эффект я ищу, что кнопка не держит форму внутри него до тех пор, нажата кнопка, а затем форма снижается, чтобы отобразиться под ней. Также, если возможно, что если кнопку снова нажать, пока форма показывает, что форма помещается обратно внутри кнопки, так что она больше не видна, пока она не будет снова нажата.

+0

Используйте 'показать/hide' вместо' visibility'? –

+0

Он не использует jQuery для того, чтобы показать/скрыть –

ответ

2

Использовать параметр Toggle Option в jQuery

HTML

 <button class="myButtonl" onclick='showForm();'>Create a Player</button> 

<div id="div1" style="display:none;"> 
    <form action="team.php" method="POST" name="profiles"> 
     <div>Team Name: <input type="text" name="psn" value=""></div> 
     <input type="submit"> 
    </form> 
</div> 

Jquery

function showForm() { 
    $('#div1').toggle(); 
} 

Demo FIDDLE

+0

ИДЕАЛЬНО. большое спасибо –

+0

чистый ... + 1 !! :) – NoobEditor

+0

Я знаю, что для этого нужен jquery, но вы можете сказать, что в ответе так, чтобы другие, пришедшие в результате этого удивительного ответа, также получали информацию, необходимую им для ее работы. Еще раз спасибо чувак вам рок –

2

Вместо style="visibility:hidden;" использования display:none;

дисплей:. Никто не удаляет элемент из нормального потока страницы, позволяя другие элементы для заполнения
visibility:hidden оставляет элемент в нормальном потоке страницы такой, который все еще занимает пространство.

<div id="div1" style="display:none;"> 
    <form action="team.php" method="POST" name="profiles"> 
     <div>Team Name: <input type="text" name="psn" value=""></div> 
     <input type="submit"> 
    </form> 
</div> 

<script> 
    function showForm() { 
    document.getElementById('div1').style.display= 'block' ; 
    } 
</script> 
+1

Cheers dude. Тот же ответ, что и тот, который я использовал, но эй, он один и тот же, чтобы я мог использовать этот. Благодарю. –

4

правильный HTML:

<div id="div1" style="display:none;"> 
    <form action="team.php" method="POST" name="profiles"> 
     <div>Team Name: <input type="text" name="psn" value=""></div> 
     <input type="submit"> 
    </form> 
</div> 

и JavaScript:

function showForm() { 
    document.getElementById('div1').style.display = 'block' ; 
} 

EDIT: обратите внимание, что вам нужно использовать свойство 'Дисплей', а не 'видимость'

+0

Работы, как сон, будут намного лучше, если он вернется к кнопке при повторном нажатии, но эй, по крайней мере, он выполняет задание –

+0

+1: но с 'правильным html' упоминать, что было неправильно в следующий раз и далее :) – NoobEditor

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