2016-07-05 2 views
0

Я использую функцию отправки в Jquery для выполнения некоторой проверки, если проверка правильна, она отправляет форму. Однако я добавил диалог «вы уверены». Могу ли я передать true или false из диалогового окна, которое затем отправит форму, поскольку в настоящее время я застрял в цикле.Диалоговое окно JQuery для возврата true или false для отправки функции

JQuery:

$(function(){ 
<!-- form validation --> 
$("#form1").submit(function() {  

    //validation stuff 

    //Disable the submit button 
    $('#SubmitButton').attr('disabled', false); 



    // Only if true is returned from dialog?? 
    return true; 
}) }); 

HTML

<div id="testdialog" title="Please Check"> 
<p>Are you sure></p>        
    <div style="height: 30px; width:100px;"onclick="$('#testdialog').dialog('close');return true;"> 
Continue 
    </div> 
    <div style="height: 30px; width: 100px;" onclick="$('#testdialog').dialog('close');return false';"> 
Redo selection 
    </div> 
</div> 
+0

Диалоги асинхронны, вы ничего не можете вернуть от них. – Barmar

+0

Для выполнения необходимых действий вам необходимо использовать обратные вызовы 'onClick' кнопок диалога. – Barmar

ответ

0

Вы должны были бы установить глобальный/переменный сеанс, который говорит вам, если пользователь уже подтвердил или нет, что-то вроде этого:

var confirmed = false; 
var confirmSubmit = function() { 
    $('#testdialog').dialog('close'); 
    confirmed = true; 
    $("#form1").submit(); 
    return true; 
} 
$(function(){ 
    <!-- form validation --> 
    $("#form1").submit(function() {  

    //validation stuff 

    //Disable the submit button 
    $('#SubmitButton').attr('disabled', false); 

    if (!confirmed) { 
     // Trigger the notification 
    } 


    // Only if true is returned from dialog?? 
    return confirmed; 
}) }); 

и html:

<div id="testdialog" title="Please Check"> 
    <p>Are you sure></p>        
    <div style="height: 30px; width:100px;"onclick="confirmSubmit"> 
     Continue 
    </div> 
    <div style="height: 30px; width: 100px;" onclick="$('#testdialog').dialog('close');return false';"> 
     Redo selection 
    </div> 
</div> 
+0

Спасибо за совет, что он достаточно разбирался в проблеме. У меня были проблемы с получением onclick = "confirmSubmit", чтобы работать, и вместо этого решил использовать прослушиватель. – user2452357

1

Спасибо за совет, что он достаточно разбирался в проблеме. У меня были проблемы с получением onclick = "confirmSubmit", чтобы работать, и вместо этого решил использовать прослушиватель.

$(function(){ 
    $('#btnconf').click(function() { 
    $('#testdialog').dialog('close'); 
    confirmed = true; 
    $("#form1").submit(); 
    return true; 
    }); 

В html я добавил id = "btnconf" к кнопке.

Hey presto !! работает угощение !. Еще раз спасибо!

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