Замена поля подтверждения JS (…) пользовательским HTML-файлом

#javascript #html

#javascript #HTML

Вопрос:

У меня есть кнопка HTML, которая переходит на страницу после нажатия на нее и нажатия кнопки подтверждения JS:

 <button onclick="return confirm("Are you sure?"); 
                 window.location="some_page.php" 
        type="button" class="btn">Some text
</button>
  

Я хочу заменить подтверждение JS на гораздо более приятное подтверждение. Я хочу использовать «модальную» библиотеку bootstrap Javascript от Twitter (http://twitter.github.com/bootstrap/javascript.html#modal ) для достижения этого. У меня уже есть HTML, написанный как поле подтверждения:

 <div id="modal" class="modal hide fade">
    <div class="modal-header">
        <h2>Some title</h2>
    </div>
    <div class="modal-body">
        <form>
            <fieldset>
                <div class="clearfix">
                    <label for="something">Something</label>
                    <div class="input">
                        <input class="xlarge" id="something" size="30" type="text">
                    </div>
                </div><!-- /clearfix -->
            </fieldset>
        </form>
    </div>
    <div class="modal-footer">
        <input id="close" class="btn" type="button" value="Cancel" />
        <input id="close" class="btn primary" type="button" value="Done" />
    </div>
</div>
  

Как мне получить onclick событие для отображения моего нового всплывающего окна вместо стандартного подтверждения JS?

Большое спасибо :).

Ответ №1:

Я использую диалоговое окно jQueryUI вместо стандартной confirm опции http://jqueryui.com/demos/dialog/#modal-confirmation

Вы указываете свои собственные кнопки в модальном, поэтому вы можете задать «Вы уверены?» кнопками «Да» и «Нет»

Ответ №2:

Как насчет window.showModalDialog ?

Ответ №3:

Вы можете либо переопределить confirm :

 confirm = function(text,yes,no) {
    // show the modal window
    // set "yes" button to call yes()
    // set "no" button to call no()
}
  

Или то, что я сделал, то есть определить пользовательскую функцию и использовать ее вместо этого. Я использовал Confirm , поскольку JS чувствителен к регистру, но вы можете использовать что угодно.