Как сделать диалог уникальным для карточки

0

Когда я добавляю карту в список "Входящие", я могу дважды щелкнуть по ней, и появится диалоговое окно. В диалоговом окне я могу выбрать дату из календаря, поместить строковое значение в поле ввода и создать динамический флажок. Затем, когда я нажимаю кнопку (Получить значение), значения отображаются на карте. Это прекрасно работает. Проблема возникает, когда я добавляю еще одну карту в папку "Входящие", и я дважды нажимаю на нее, чтобы открыть диалоговое окно, показаны те же значения из предыдущего диалогового окна. Я не хочу этого. Я хочу, чтобы каждый раз, когда я добавляю новую карту, я дважды нажимаю на нее, диалоговое окно пусто от значений.

Я думаю, что решение может заключаться в том, чтобы сделать карту уникальной, но я не уверен.

Пожалуйста, помогите мне и предоставьте код.

DEMO

HTML:

    <!--Inbox list and button to add a card-->
    <div id="inboxList" class="cellContainer">
        <p style="display: inline">Inbox</p> 
        <!--Button to add a Card-->
        <input type="button" id="AddCardBtn" value="+ Add a Card..."/> <hr class="fancy-line"/> <br/>

        <!--Card div-->
        <div id="userAddedCard"> <br/>
            <div>

            </div>
        </div>
    </div>


</div>
<!--Modal Dialog-->
<div id="modalDialog">

    <form>
        <label>Title</label>
        <input type="text" id="customTextBox" value="some value"/>
        <p>Date: <input type="text" id="datepicker" value="some date"/></p> 
        <input type="button" id="Getbtn" value="Get value"/> <hr/><br/>

        <label>Add checkBox</label>
        <br />
        <div id="progressbar"></div>
        <br />
        <input type="text" id="checkBoxName" />
        <input type="button" id="btnSaveCheckBox" value="_Ok" />
        <br />

    </form>

</div>
<!--Reference to Jquery-->

Jquery:

$(function () {
    // Click function to add a card
    var $div = $('<div />').addClass('sortable-div'); 
    $('<label>Title</label><br/>').appendTo($div);              
    $('<input/>', { "type": "text","class":"ctb"}).appendTo($div);
    $('<input/>', { "type": "text","class":"date"}).appendTo($div);
    var cnt =0,$currentTarget;
    $('#AddCardBtn').click(function () {
      var $newDiv = $div.clone(true);
      cnt++;  
      $newDiv.prop("id","div"+cnt);  
      $('#userAddedCard').append($newDiv);

    });

    // Double click to open Modal Dialog Window
    $('#userAddedCard').dblclick(function (e) {
        $currentTarget = $(e.target);

        $('#modalDialog').dialog({
            modal: true,
            height: 600,
            width: 500,
            position: 'center'
        });
        return false;

    });
    $("#datepicker").datepicker({showWeek:true, firstDay:1});

    $("#Getbtn").on("click",function() {
      var val = $("#customTextBox").val();
      $currentTarget.find(".ctb").val(val);
      $currentTarget.find(".date").val($("#datepicker").val() );
      $('#modalDialog').dialog("close");
    });

    // Add a new checkBox
    $('#btnSaveCheckBox').click(function () {
        addCheckbox($('#checkBoxName').val());
        $('#checkBoxName').val("");
    });

    function addCheckbox(name) {
        var container = $('#modalDialog');
        var inputs = container.find('input');
        var id = inputs.length + 1;

        $('<input />', { type: 'checkbox', id: 'cb' + id, value: name }).appendTo(container);
        $('<label />', { 'for': 'cb' + id, text: name }).appendTo(container);
        $('<br/>').appendTo(container);


    }    
});
  • 0
    «Пожалуйста, помогите мне и предоставьте некоторый код.» .. Мы не предоставляем некоторый код для вас. Вы должны узнать об этом. Запрашивать код - это всегда плохая практика.
  • 0
    Я попробовал сам, но понятия не имею, как это сделать. Я не согласен с тем, что просить код всегда плохая практика. Я всегда чему-то учусь.
Показать ещё 3 комментария

1 ответ

0
for your code add the lines that i added
$(function () {
// Click function to add a card
var $div = $('<div />').addClass('sortable-div'); 
$('<label>Title</label><br/>').appendTo($div);              
$('<input/>', { "type": "text","class":"ctb"}).appendTo($div);
$('<input/>', { "type": "text","class":"date"}).appendTo($div);
var cnt =0,$currentTarget;
$('#AddCardBtn').click(function () {
  var $newDiv = $div.clone(true);
  cnt++;  
  $newDiv.prop("id","div"+cnt);  
  $('#userAddedCard').append($newDiv);

//alert ($ ('# userAddedCard'). find ("div.sortable-div"). length);
});

// Double click to open Modal Dialog Window
$('#userAddedCard').dblclick(function (e) {
    $currentTarget = $(e.target);

    $('#modalDialog').dialog({
        modal: true,
        height: 600,
        width: 500,
        position: 'center'
    });
    return false;

});
$("#datepicker").datepicker({showWeek:true, firstDay:1});

$("#Getbtn").on("click",function() {
  var val = $("#customTextBox").val();
  $currentTarget.find(".ctb").val(val);
  $currentTarget.find(".date").val($("#datepicker").val() );
    document.getElementById('customTextBox').value="";//add this line
    document.getElementById('datepicker').value="";//add this line
    $('.allcheckbox').remove();//add this line
  $('#modalDialog').dialog("close");
});

// Add a new checkBox
$('#btnSaveCheckBox').click(function () {
    addCheckbox($('#checkBoxName').val());
    $('#checkBoxName').val("");
});

function addCheckbox(name) {
    var container = $('#modalDialog');
    var inputs = container.find('input');
    var id = inputs.length + 1;

    $('<input />', { type: 'checkbox', class: 'allcheckbox', id: 'cb' + id, value: name }).appendTo(container);//add the attribute class
    $('<label />', { 'for': 'cb' + id, class: 'allcheckbox', text: name }).appendTo(container);//add the attribute class
    $('<br/>').appendTo(container);


}    

});

  • 0
    У меня все та же проблема.
  • 0
    Вы добавили строки, которые я упомянул там ... Это работает нормально ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню