3

I want to customize this show hide html div using javascript.

HTML

<a href="#" class="clickme">Menu 1</a>
<div class="box">
   <span><span class="labelText"><span></span>Number 1</span></span>
    <input type="text" value="" maxlength="50"><br/>
    <span><span class="labelText"><span></span>Number 2</span></span>
    <input type="text" class="inputclmsize1"  value="" maxlength="50"  aria-invalid="false"><br>
    <a href="">Submit</a>                                                                                     
</div>

<a href="#" class="clickme">Menu 2</a>
<div class="box">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
</div>

CSS code

body {
font: 12px/16px sans-serif;
margin: 10px;
padding: 0;}

.clickme {
background-color: #eee;
border-radius: 4px;
color: #666;
display: block;
margin-bottom: 5px;
padding: 5px 10px;
text-decoration: none;}

.clickme:hover {
text-decoration: underline;}

.box {
background-color: #ccc;
border-radius: 4px;
color: #333;
margin: 5px 0;
padding: 5px 10px;
width: auto;}

Javascript code

$('.box').hide();
// Make sure all the elements with a class of "clickme" are visible and bound
// with a click event to toggle the "box" state
$('.clickme').each(function() {
    $(this).show(0).on('click', function(e) {
        // This is only needed if your using an anchor to target the "box" elements
        e.preventDefault();

        // Find the next "box" element in the DOM
        $(this).next('.box').slideToggle('fast');
    });

});

When i click Menu1 line, it appear two text column with submit link. i want to , when i click submit button, the Menu 1 close and menu 2 description open automatically. how can i do this. please anyone can help? :( fiddle link is here http://jsfiddle.net/rn4qdyue/2/

0

4 Answers 4

4

You can add a click event to the submit button, then toggle each box.

$("#submit").click(function(e){
    e.preventDefault();
    $("#box1").slideToggle('fast');
    $("#box2").slideToggle('fast');
});

Note I added IDs to the submit button, and both box DIVs.

Fiddle: http://jsfiddle.net/rn4qdyue/6/

Sign up to request clarification or add additional context in comments.

Comments

3

Add a click handler of submit click.

<a href="" id="submit">Submit</a>  

$('#submit').click(function(e){
    e.preventDefault();
    var $parent = $(this).closest('.box');

    $parent.slideToggle('fast');
    $parent.next('.clickme').click();
});

Updated Fiddle

Comments

3

Check following solution.

$('#submit').on('click', function(e) {
    e.preventDefault();
    var $el = $(this).parent('.box');

    $el.slideUp('fast');
    $el.next().next('.box').slideDown('fast')
});

Updated Fiddle

1 Comment

this solution deserve a medal. If the menu 2 is already open when submit button is clicked, the menu will remain open.
3

You can add an id to to your submit.

<a id="submit" href="">Submit</a>  

In JS do this:

$('#submit').click(function(e){
    e.preventDefault();
  $('.box').slideToggle('fast');
})

Fiddle.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.