当我将卡添加到收件箱列表中时,我可以双击它并弹出一个对话框窗口。在对话框窗口中,我可以从日历中选择一个日期,将一个字符串值放入输入字段并创建一个动态复选框。然后,当我按下按钮(获取值)时,卡上会显示值。这很好用。当我将另一张卡添加到收件箱并双击它以打开对话框窗口时,会出现问题,显示上一个对话框窗口中的相同值。我不想要它。 我希望每次添加一张新卡时,双击它,对话框窗口都没有值。
我认为解决方案可能是让卡片独一无二,但我不确定。
请帮帮我,并提供一些代码。
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)
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($(&#39;#userAddedCard&#39;)。find(&#34; div.sortable-div&#34;)。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);
}
});