How do you specify the primary and secondary actions for a Bootstrap modal window?

后端 未结 1 1326
孤街浪徒
孤街浪徒 2021-02-05 21:10

I\'m using Twitter\'s Bootstrap modal functionality. When someone clicks submit on my form, I\'m testing to see if they have checked any of the available options:



        
相关标签:
1条回答
  • 2021-02-05 22:06

    Well, the problem is that right now Bootstrap does not have any proper callbacks for their action buttons. Therefore, you have to do this in a roundabout way and create your own. Hope this helps!

    Here's a JS fiddle showing it work: http://jsfiddle.net/iwasrobbed/rYLWz/3/

    And here is the code:

    HTML File

    <form>
    <ul class="inputs-list">
        <li>
          <label>
            <input type="checkbox" name="optionsCheckboxes" value="option1" />
            <span>Option 1</span>
          </label>
        </li>
        <li>
          <label>
            <input type="checkbox" name="optionsCheckboxes" value="option2" />
            <span>Option 2</span>
          </label>
        </li>
    </ul>
    <div class="actions">
        <a href="#" class="save-button btn large primary">Save changes &raquo;</a>
    
        <!-- Hide the real submit button /-->
        <input type="submit" class="hidden">
    </div>
    </form>
    
    <div id="my-modal" class="modal hide fade">
        <div class="modal-header">
            <a href="#" class="close">&times;</a>
            <h3>Are you sure?</h3>
        </div>
        <div class="modal-body">
            <p>You haven&rsquo;t selected any options.</p>
        </div>
        <div class="modal-footer">
            <a href="#" class="okay-button btn primary">Okay &raquo;</a>
            <a href="#" class="go-back-button btn secondary">Go back</a>
        </div>
    </div> <!-- /modal -->
    

    JS File

    $(document).ready(function() {
    
        // Verify if checkboxes were checked.
        // If they weren't, show a modal
        $('a.save-button').click(function() {
            if ($("input:checked").length === 0) {
    
                $('#my-modal').modal({
                    show: 'true',
                    backdrop: 'true',
                    keyboard: 'true'
                });
            } else {
                $('form').submit(); 
            }
    
            // prevent click jump
            return false;
        });
    
        // Let's attach a listener on form submission
        $('form').submit(function() {
            alert('We submitted the form!');
        });
    
        // Hide modal if "Go back" is pressed
        $('#my-modal .go-back-button').click(function() {
            $('#my-modal').modal('hide');
            alert('We went back to the form');
        });
    
        // Hide modal if "Okay" is pressed
        $('#my-modal .okay-button').click(function() {
            $('#my-modal').modal('hide');
            $('form').submit();
        });
    
    });
    

    I added a little CSS as well:

    ul.inputs-list li {
        margin-left: 10px;
    }
    .hidden {
        display: none   
    }
    
    0 讨论(0)
提交回复
热议问题