2014-01-08 3 views
0

У меня есть кнопка отправки формы, которая не видна, пока пользователь не проверит флажок, чтобы сказать, что они являются людьми (это не лучшая практика, которую я знаю, но мне не хватает для установки Captcha).Показать/скрыть элементы родительской формы с помощью jQuery

Вот HTML:

<div class="row"> 
    <div class="large-5 columns large-centered center" 
     id="txtHuman" style="display:none"> 
    <input class="button" name="submitbutton" type="submit" value="Vote now!" /> 
    </div> 
</div> 

<div class="row"> 

    <div class="large-3 columns large-centered verification"> 
     <label for="isHumanSelected"><span></span></label> 
     <input type="checkbox" id="isHumanSelected" style="margin-left:-9999px"/> 
    </div> 
</div> 

Это JQuery:

$('#isHumanSelected').click(function() { 
    $("#txtHuman").toggle(this.checked); 
}); 

Это работает. Но я хотел бы скрыть флажок и метку, используемые для определения того, является ли пользователь человеком или нет, когда кнопка отправки формы видна.

Как бы я это сделал?

+0

Извинения. Забыл добавить это. Отредактировано сейчас. – themarcthomas

ответ

0

Вы можете использовать .parent(), чтобы скрыть эти элементы, попробуйте следующее:

$('#isHumanSelected').click(function() { 
    $("#txtHuman").toggle(this.checked); 
    $(this).parent('.verification').hide(); 
}); 

Demo Fiddle

+0

Это сработало для меня. Спасибо. Лучшие вещи! – themarcthomas

+0

Np mate рад помочь вам – DaniP

0
<div id="PLACEANIDHERE" class="row"> 

    <div class="large-3 columns large-centered verification"> 
    <label for="isHumanSelected"><span></span></label> 
    <input type="checkbox" id="isHumanSelected" style="margin-left:-9999px"/> 
    </div> 

</div> 

Переключить идентификатор контейнера. И ярлык, и флажок будут видимы/скрыты одновременно.

Примечание: если флажок не установлен, боты не отправляют вашу форму ... Они воссоздают форму submit, они фактически не заполняют форму.

0
$("#txtHuman").is(":checked")) 
    $("#element").hide(); 
else 
alert("not:Checked"); 
0

Как насчет

Live Demo

$(function() { 
    $("#isHumanSelected").on("click",function() { 
    $(this).parent().html($("#txtHuman").html()); 
    }); 
}); 
+0

Это сделало правильные вещи появляться и исчезать, но на самом деле сломал форму как-то. Не уверен, что произошло. – themarcthomas

+0

Зависит от того, что находится в родительском div. Я использовал ваш html – mplungjan

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