0

我有一个要求,如果用户在“EarliestReasonableOfferDate”中输入日期,它应该提示一个对话框是/否。如果选择是,则继续,如果否,则用户应选择该值并存储在隐藏字段“OfferedDate”中并清除日期选择器。然后,用户需要输入第二个提供的日期,然后在用户接受第二个提供日期时出现一个对话框,如果是,则继续,如果没有,则应清除 datepicker 值,输入的值应以逗号分隔的字符串形式存储在 offerdate 字段中. 等等第三和第四。这是我的代码。我正在努力循环对话。

<%: 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'的结果

4

2 回答 2

0

您在打开更多对话框时遇到问题吗?因为你可以递归地调用函数。将这段代码放在一起,向您展示如何一遍又一遍地显示对话框,它会附加报价文本字段中的内容。如果您需要在是/否之间单独的对话框来输入日期,那么他们可以互相调用。

提琴手

$(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);           


     }
    }
    });

}
于 2013-08-06T12:26:10.157 回答
0

的使用hvappend是错误的。你永远不会在它上面附加任何东西。你应该这样做:

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

您实现函数的方式在函数hvappend的每次迭代中都会被覆盖。

于 2013-08-06T12:13:42.567 回答