Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将所选下拉列表设置为只读(未禁用)_Javascript_Jquery_Jquery Chosen - Fatal编程技术网

Javascript 将所选下拉列表设置为只读(未禁用)

Javascript 将所选下拉列表设置为只读(未禁用),javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,我希望将下拉菜单设置为只读,并且需要使用jQuery选择器动态执行此操作。如果我使用以下命令将其设置为禁用: $("#dropdownDepartment").attr("disabled","disabled").trigger('chosen:updated'); 该值未发布,但我需要发布 我试过了 $("#dropdownDepartment").attr('readonly',true).trigger('chosen:updated'); 但这不起作用 我使用的是Selected

我希望将下拉菜单设置为只读,并且需要使用jQuery选择器动态执行此操作。如果我使用以下命令将其设置为禁用:

$("#dropdownDepartment").attr("disabled","disabled").trigger('chosen:updated');
该值未发布,但我需要发布

我试过了

$("#dropdownDepartment").attr('readonly',true).trigger('chosen:updated');
但这不起作用

我使用的是Selected v1.4.2和jQuery v2.1.4


谢谢你的帮助!谢谢。

您可以做一些选择

禁用下拉列表,将值存储在隐藏字段中,并在帖子中发送。 禁用所有其他选择,以便仅启用所选的一个

$('#dropdownDepartment option:not(:selected)').attr('disabled', true);
禁用下拉列表,然后在执行post之前启用它 当你想禁用它时,把它变成一个只读文本框 试试这个:-

var select = $('select');
var oldVal=$('select').val();
select.chosen().on('change',function(e){   
     select.val(oldVal);
   select.trigger("chosen:updated");  
});

我同时有一个变通办法。所以,希望它能帮助将来的人,我想你已经解决了这个问题

首先将所选选项的所选选项值打印到隐藏输入中,如下所示。对于$\u POST value,从该隐藏输入获取值$\u POST['myselect']:

注意:如果您不想禁用它,则无需更新所选select的更改事件时隐藏输入的值


我可能会在聚会上迟到,但我遇到了与OP相同的问题。我发现,即使值被禁用,也可以将其发回的解决方法是在提交表单时重新启用它们

$("form").bind("submit", function () {
    $("#TheList *").prop("disabled", false).trigger("chosen:updated");
});

请注意列表后面的[space][star],它是递归地重新启用列表中的每个子项。

对我来说最好的解决方案是这样一个丑陋的把戏$dropdownDepartment。prop'disabled',true。trigger'selected:updated'。prop'disabled',false。
因此,已禁用“选择”,但已发布“选择”中的值

我们可以通过删除所选容器div上的指针事件来实现异常行为

即使我们不启用输入,其值也将与表单提交一起发布

//禁用 $'.selected'.parent.find'.selected container'.css{'pointer-events':'none','opacity':0.5}; //使能 $'.selected'.parent.find'.selected container'.css{'pointer-events':,'opacity':1};
你是说禁用它?我的意思是你不想让用户点击它?如果你想禁用,你可以试试这个:-我不想禁用它。我想让它成为只读的。另外一个选项是清空所有下拉字段,只填充你想显示的单个选项。这应该是可以接受的答案。至少我们不需要处理任何其他隐藏的输入元素创建或其他任何事情。
$('input[name=myselect]').val($(".chosen-select").val());   
$('.chosen-select').attr("disabled", true).trigger("chosen:updated");
$("form").bind("submit", function () {
    $("#TheList *").prop("disabled", false).trigger("chosen:updated");
});