2013-08-06 3 views
0

У меня было требование, чтобы, если пользователь вводит дату в «EarliestReasonableOfferDate», он должен запросить диалог yes/no. если yes выбрано, оно продолжается, если пользователь не должен выбирать значение и хранить в скрытом поле «OfferedDate» и очищать datepicker. Затем пользователю необходимо ввести вторую предложенную дату, а затем появится диалоговое окно, когда пользователь примет вторую дату предложения, если да, она продолжена, и если значение datepicker не должно быть очищено, а введенное значение должно храниться в поле offerдата в виде строки, разделенной запятыми , и третий и четвертый. Вот мой код. Я изо всех сил пытаюсь перебирать диалоги.Loop через диалог jquery

<%: Html.HiddenFor(m=>m.OfferedDate) %>      
     <td> 
    <%: Html.EditorFor(M => M.EarliestReasonableOfferDate,"DateTime")%> 
    </td> 

    $("#EarliestReasonableOfferDate").bind('change', function() { 
     AcceptDialog(); 
    }); 

    function AcceptDialog() { 
    var div = document.createElement("div"); 
    $(div) 
    .html('Did Patient Accept First date Offered? Yes/No') 
    .dialog({ 
    modal: true, 
    title: 'Acceptence Screen', 
    buttons: { 
    "Yes": function() { 

     $(this).dialog('close'); 
     }, 

     "No": function() { 

     var hv = $('#EarliestReasonableOfferDate').val(); 
     var hv1 = $('#OfferedDate').val(hv); 
     $('#EarliestReasonableOfferDate').val(''); 

     var hvappend = hv1.val() + ','; 
     alert(hvappend); 
     $(this).dialog('close'); 
     alert("Enter Next date Offered");    


    } 
    } 
    }); 
    } 

например., Результат выше Offerdate = '06/06/2013,» , но мне нужно результат петли offerdate = '06/06/2013,07/07/2013,07/08/2013 '

+1

Можете ли вы объяснить ваше требование через, например, в http://jsfiddle.net/ – vinothini

+0

только идея, но вы создаете несколько полей с одинаковым ID? Кажется, что ваш селектор $ ("# EarliestReasonableOfferDate") указывает это. jQuery не нравится. – Richard

+0

@vinothini check: jsfiddle.net/w8sPN/15 пользователь вводит первый день dailog 'Было предложение 1 принято?' с подсказками yes/no. когда нет, запрашивает «Ввести следующую дату» и нормально, чтобы первая дата была сохранена. пользователь вводит дату-дату с «Предложенное предложение 2»? с подсказками yes/no. когда нет, «Введите следующую дату» и ok, вторая дата сохраняется после запятой и так далее, пока пользователь не примет да. – Charlie

ответ

0

У вас возникли проблемы с открытием дополнительных диалогов? Вы можете просто вызвать функцию рекурсивно. Сбросьте этот код, чтобы показать, как вы можете продолжать показывать диалог снова и снова, и он добавит то, что находится в текстовом поле предложения. Если вам нужен отдельный диалог между да/нет, чтобы ввести дату, тогда они могут просто позвонить друг другу.

JsFiddle

$(function() { 
    $("#btn").click(function(){offer_popup(1);}); 
}); 

function offer_popup(level){ 
$("#dialogb") 
    .dialog({ 
    modal: true, 
    title: 'Acceptence Screen', 
     open: function(){ 
      $("#offertext").text("Did user accept offer " + level + "? Yes/No"); 
     }, 
    buttons: { 
    "Yes": function() { 

     $(this).dialog('close'); 
     }, 

     "No": function() { 
      $("#oldoffers").text($("#oldoffers").text()+ ", " + $("#offer").val()); 
      $("#offer").val(''); 
      $(this).dialog('close'); 
      offer_popup(level+1);   


    } 
    } 
    }); 

} 
+0

Спасибо за ваш ответ, это действительно полезно. да, мне нужен отдельный диалог между да/нет, чтобы ввести дату .please также помогает звонить друг другу. – Charlie

+0

См.: Http://jsfiddle.net/w8sPN/3/ – dz15

+0

Вместо кнопки «Пуск» в вашем примере можно ли выбрать дату? и всплывающие окна должны быть только да/нет dailogs и нормально всплывать, если пользователь принимает какие-либо промежуточные между первым, вторым и третьим и т. д. – Charlie

0

Использование hvappend неверно. Вы никогда ничего не добавляете к нему. Вы должны сделать что-то вроде этого:

function AcceptDialog() { 
    var hvappend = ""; 
    ... 
    .dialog({ 
     ... 
     "No": function() { 
      ... 
      hvappend += hv1.val() + ','; 
      ... 
     }) 
     ... 
    } 
    ... 
} 

Путь вы реализовали функцию, hvappend будет переписан на каждой итерации функции.

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