2013-03-30 3 views
2

Попытка получить ввод текста в формате HTML для скрытия при загрузке, но затем, если установлен переключатель, появится форма.HTML-элемент формы скрытый onload javascript

http://pastie.org/private/ah39ul5h4jtmlntkbmmda

Я получил это работает вроде, мне просто нужно поле, чтобы быть скрыты на странице загрузки.

<form action="profile_edit_gravatar.php" method="post"> 
    <label class="radio inline"> 
     <input type="radio" <?php if($row[16]=='account') {echo ' checked';}?> onload="this.form.otheremail.style.visibility='hidden';" onclick=" 
      if (this.checked) { 
      this.form.otheremail.style.visibility='hidden'; 
      } else { 
      this.form.otheremail.style.visibility='visible'; 
      } 
      return true; 
     "> 
     Use <?php echo $row[3];?> 
    </label> 
    <input type="text" name="otheremail"> 
</form> 
+0

Почему бы не просто установить стиль с помощью css? – TommyBs

+0

, потому что должно быть показано, если строка 16 не является учетной записью – mplungjan

+0

, тогда если строка [16] == «учетная запись» дает ему определенный класс или идентификатор и переопределяет видимость в таблице стилей для этого также – TommyBs

ответ

1

Как насчет Даю радио и поле идентификатора - на самом деле менее важно сейчас я написал сценарий, который использует getElementsByName ...

DEMO

<?php $hide = $row[16]=='account'; ?> 
<style> 
<?php if ($hide) { echo '#otheremail {visibility:hidden;}'; ?> 
</style> 
<script> 
window.onload=function() { 
    var rads = document.getElementsByName("gravatarradios"); 
    rads[0].onclick=rads[1].onclick=function() { 
    this.form.otheremail.style.visibility=(this.value=="Use")?'hidden':'visible'; 
    } 
    if (<?php echo $hide; ?>) rads[0].click(); else rads[1].click(); 
} 
</script> 

HTML

<form action="profile_edit_gravatar.php" method="post"> 
<label class="radio" for="gravatarradios1"> 
    <input type="radio" name="gravatarradios" id="gravatarradios1" value="Use"> 
    Use  </label> 
<label class="radio" for="gravatarradios2"> 
    <input type="radio" name="gravatarradios" id="gravatarradios2" value="Use other"> 
    Use another email: 
</label> 
<input type="email" name="otheremail" id="otheremail" placeholder="Gravatar email address"> 
</form> 
+0

Это будет работать, но должно быть вживую на странице. Это то, что у меня есть до сих пор: http://dev.jaycraft.co/player/gravatar.php – 2013-03-30 17:54:37

+0

Это было бы полезно увидеть – mplungjan

+0

Нет, должно быть, радио. Пользователь выбирает, хотят ли они использовать электронную почту своего аккаунта (из базы данных) или другое письмо для своего Gravatar. – 2013-03-30 17:59:20

0

Вы можете создать его с помощью CSS. Это скроет все входы по умолчанию:

input { 
    visibility: hidden; 
} 
+0

Это не сработало для меня , все еще показывался при загрузке, когда я использовал вход #otheremail {visibility: hidden;} и имел ввод текста с id = "otheremail" – 2013-03-30 17:51:02

+0

Скрипка с использованием jQuery для выполнения того, что вы хотите: http://jsfiddle.net/gLccb/ – flemingslone

0

Там нет OnLoad событие для ввода Elemen t, вы можете скрыть элемент по умолчанию, используя CSS, затем поработайте над ним, когда щелкнул радиоокно.

Другой вариант - использовать нагрузку для кузова.

<body onload="document.forms[0].otheremail.style.visibility='hidden';" > 
+0

, если PHP не говорит, что он должен быть виден при загрузке страницы – mplungjan

+0

Да, это тоже не сработало:/ – 2013-03-30 17:55:44

+0

см. [ЭТО ДЕМО] (http://jsfiddle.net/TxpQD/) Я сменил радиоканал на флажок :) – 2013-03-30 18:01:50