我在主頁面有一些複選框;當他們每個被點擊時,我臨時jquery ui對話框創建與它上面的一些複選框(那些不工作);我發現第一次對話框複選框被加載,他們可以通過jquery進行檢查和取消選中。如果我關閉並重新創建對話框,我無法通過jquery檢查或取消選中複選框;我試着用下面的方法,但沒有結果(元狀態的變化,但不會刷新頁面上的複選框的元素)複選框沒有在臨時的jQuery UI對話框中刷新其狀態
$('#checkbox').attr('checked', true);
$('#checkbox').prop('checked', true);
元狀態的變化,我檢查了它與
$('#checkbox').attr('checked');
$('#checkbox').prop('checked');
$('#checkbox').is(':checked');
代碼如下:
// For each checkbox in a form in main page
$('.first_form_cbox').each(function()
{
// When each checkbox is clicked (checked) fun_handler is called,
// and id of checkbox is passed to it
var id = $(this).attr('id');
$(this).click({'id': id }, fun_handler);
});
// Handler for click on main page checkbox
function fun_handler()
{
// Dialog body is created
var dlg_body = '<div class="sfun_container">';
// Array that holds values used by checkboxes
var fun_list = new Array(
{'name' : 'Minimum, Maximum', 'fun' : 'MMX'},
{'name' : 'Average', 'fun' : 'AVG'},
{'name' : 'Standard Deviation', 'fun' : 'STD'},
{'name' : 'Standard Error of the Mean', 'fun' : 'SEM'},
{'name' : 'Distinct Count', 'fun' : 'DCNT'}
);
// Creates all checkboxes using values defined in fun_list
for (var f_index in fun_list)
{
dlg_body += '<input id="tfun_cbox_' + fun_list[f_index]['fun']
+ '" type="checkbox" class="tfun_cbox" value="'
+ fun_list[f_index]['fun'] + '"/>'
+ fun_list[f_index]['name'] + '<br/>';
}
dlg_body += '</div>';
// Creates temporary dialog
$('<div title="Select function(s)"><p>' + dlg_body + '</p></div>').dialog(
{
modal : true,
width : 320,
resizable : false,
// When open
open : function()
{
// Gets from data-funs attribute of main page checkbox
// Each main page checkbox may have some functions already
// inserted in data-funs, if earlier some dialog checkboxes,
// that represent functions, were checked and their values
// saved in data-funs
var funs = $('#' + event.data['id']).data('funs');
if (funs != undefined)
{
// Retrieves from funs which dialog checkboxes were checked
for(var f_index in funs)
{
// Checks dialog checkbox
$('#tfun_cbox_' + funs[f_index]).prop('checked', true);
}
}
},
close : function()
{
if ($('.tfun_cbox:checkbox:checked').length > 0)
{
// Some dialog checkboxes are checked
var funs = new Array();
$('.tfun_cbox:checkbox:checked').each(function()
{
// Saves dialog checked checkbox state value in funs
funs.push($(this).val());
// Unchecks dialog checkbox
$(this).prop('checked', false);
});
// Saves all checkboxes value in data-funs of main page
// checkbox
$('#' + event.data['id']).data('funs', funs);
}
},
buttons : [
{
text : "Ok",
click : function()
{
// Checks back main page checkbox that
// when clicked fired fun_handler
$('#' + event.data['id']).prop('checked', true);
$(this).dialog("close");
}
},
{
text : "Cancel",
click : function()
{
// Unchecks all dialog checkboxes in order not to save them
$('.tfun_cbox:checkbox:checked').prop('checked', false);
$(this).dialog("close");
}
}]
});
}
如果需要,我會發布更多的代碼。 謝謝
能否請您提供一個小提琴或更多的代碼,你如何爲第一次和第二次 –
我無法創建撥弄對話框打開此對話框..所以我張貼更多的代碼.. – gc5