我正在尝试通过使用另一个选择列表来过滤选择列表。问题是在过滤列表后,我无法重新加载列表。因此,如果用户意外在第一个列表上做出了错误的选择,则第二个列表上将不保留任何选项。您可以在下面看到我的代码。

        $('#selectCftDialog').change(function() {
            //alert('Handler for .select() called.');
            var tempCftID;
            tempCftID = $("#selectCftDialog").val();
            //alert("The tempCraftID is: CftID-" + tempCraftID)
            $('#selectSpDialog option').not('#CftID-' + tempCftID).remove();
                    });

最佳答案

您可以做的是在选择元素本身启动时将选项另存为data

$('#selectSpDialog').data('options', $('#selectSpDialog option')); // Set the jquery data `options` with the initial set of options.

$('#selectCftDialog').change(function () {
    //alert('Handler for .select() called.');
    var tempCftID;
    tempCftID = $("#selectCftDialog").val();
    //alert("The tempCraftID is: CftID-" + tempCraftID)
    $('#selectSpDialog option').not('#CftID-' + tempCftID).remove(); // Ok you can remove now
});

function someEventCalledProabablyReset()
{
    var select = $('#selectSpDialog');
    select.html(select.data('options')); //Set back all the saved options.
}


Fiddle

10-08 20:16