0

ユーザーが 'EarliestReasonableOfferDate' に日付を入力した場合、はい/いいえのダイアログが表示されるようにする必要がありました。はいが選択されている場合、ユーザーが値を選択して非表示フィールド「OfferedDate」に保存し、日付ピッカーをクリアする必要がない場合は続行します。次に、ユーザーは2番目のオファー日を入力する必要があり、ユーザーが2番目のオファー日を受け入れたときにダイアログが表示されます。はいの場合は続行し、いいえの場合は日付ピッカーの値をクリアし、入力した値をコンマ区切りの文字列としてオファー日付フィールドに保存する必要があります. 3番目と4番目も同様です。これが私のコードです。ダイアログをループするのに苦労しています。

<%: 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

の使い方hvappendが間違っています。それに何も追加することはありません。次のようにする必要があります。

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

関数を実装した方法はhvappend、関数の反復ごとに上書きされます。

于 2013-08-06T12:13:42.567 に答える
0

ダイアログを開くのに問題がありますか? 関数を再帰的に呼び出すことができるからです。このコードを一緒に投げて、ダイアログを何度も表示し続ける方法を示し、オファー テキスト フィールドにあるものを追加します。日付を入力するためにはい/いいえの間に別のダイアログが必要な場合は、お互いに電話をかけることができます。

Jsフィドル

$(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 に答える