2013-08-06 2 views
0

사용자가 'EarliestReasonableOfferDate'에 날짜를 입력하면 예/아니요 대화 상자가 나타납니다. '예'를 선택하면 사용자가 값을 선택하고 'OfferedDate'숨겨진 필드에 저장하고 날짜 표시기를 지우지 않으면 계속됩니다. 그런 다음 사용자는 두 번째 제공된 날짜를 입력해야하며 사용자가 두 번째 제안 날짜를 수락하면 대화 상자가 나타나야합니다. 그렇다면 계속됩니다. 그렇지 않으면 날짜 피커 값을 지우고 입력 된 값을 쉼표로 구분 된 문자열로 제공 날짜 필드에 저장해야합니다 . 그리고 세 번째와 네 번째로. 여기 내 코드가있다. 대화 상자를 반복하는 데 어려움을 겪고 있습니다.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// 2,013 06 ' 하지만 루프 offerdate 결과가 필요하다 = 06/06/2013,07/07/2013,07/08/2013 '

+1

당신은 http://jsfiddle.net/ – vinothini

+0

그냥 아이디어의 예를 통해 요구 사항을 설명 할 수 있지만, 같은 ID로 여러 필드를 작성? 귀하의 $ ("# EarliestReasonableOfferDate") 선택자는이를 나타냅니다. jQuery는 그것을 좋아하지 않는다. – Richard

+0

@vinothini 수표 : jsfiddle.net/w8sPN/15 사용자가 첫 번째 날짜를 입력하십시오. dailog '제안 1이 수락 되었습니까?' 예/아니오 프롬프트가 표시됩니다. 아니요, '다음 날짜 입력'을 묻는 메시지가 나타나면 첫 번째 날짜가 저장됩니다. 사용자가 '제안 2 동의?'와 함께 두 번째 데이트 기록을 입력합니다. 예/아니오 프롬프트가 표시됩니다. 아니요, '다음 날짜 입력'을 선택하고 쉼표 다음에 두 번째 날짜를 저장합니다. 예를 들어 사용자가 동의 할 때까지 계속됩니다. – 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

답변 해 주셔서 감사합니다. 예 예/아니요 날짜를 입력하는 별도의 대화가 필요합니다. 또한 서로 전화 도움이됩니다. – Charlie

+0

참조 : http://jsfiddle.net/w8sPN/3/ – dz15

+0

예에서 시작 버튼 대신 datepicker를 사용할 수 있습니까? 사용자가 첫 번째, 두 번째, 세 번째 등을 허용하는 경우 팝업은 예/아니요 dailogs 및 ok 팝업이어야합니다. – Charlie

0

hvappend의 사용이 잘못되었습니다. 당신은 아무 것도 추가하지 않습니다.

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

이 기능을 구현 한 방법은, hvappend 함수의 모든 반복에 덮어 쓰기 : 다음과 같이해야합니다.