我在我的表单中使用 jqTransform,我想禁用选择。jqTransform 导致它不会被禁用。
如果您对此有解决方案,请指导我。
尝试这个 :
// To disable
$('.someElement').attr('disabled', 'disabled');
或者
$('.someElement').attr("disabled", "true");
也许有点晚了,但这是我的解决方案。
您必须禁用原始选择元素(如前所述),然后删除此选择的 jqTransform 元素并重做 jqTransform 操作。
我为自己编写了一个小函数来执行此操作(我在这里也提到过:jqTransform Select - Ajax Update?)。
function fix_select(selector) {
selectedVal = $(selector).children(':selected').val();
$(selector).children('option').removeAttr('selected');
$(selector).children('option[value="'+selectedVal+'"]').attr('selected','selected');
$(selector).removeClass('jqTransformHidden');
$(selector).css('display','block');
$(selector).prev('ul').remove();
$(selector).prev('div.selectWrapper').remove();
var selectElm = $(selector).closest('.jqTransformSelectWrapper').html();
$(selector).closest('.jqTransformSelectWrapper').after(selectElm);
$(selector).closest('.jqTransformSelectWrapper').remove();
$(selector).closest('form').removeClass('jqtransformdone');
$(selector).closest('form').jqTransform();
}
在更改选择元素后调用此函数(禁用它,通过 ajax oid 添加选项)。
fix_select('select#my_updated_select_box');
很晚了,但我对这个问题的解决方案是:
let elem = $('#realSelectElementID');
elem.css('disabled',true).prev('ul').css('pointer-events','none');
禁用真实元素并取消与 jqTransform 插件创建的选项列表的任何交互。这样,我们维护具有相同方面的组件。