Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 - Fatal编程技术网

Javascript 没有选定选项时重置选择下拉选项

Javascript 没有选定选项时重置选择下拉选项,javascript,jquery,Javascript,Jquery,我想在未选择任何选项时重置选择下拉选项(将选择下拉选项的第一个选项设置为默认值,当失去对选择的关注但未选择任何选项时),正如您在我的代码段中看到的,它可以重置,但问题是,当您从“选择”下拉选项中选择一个选项,然后再次单击“选择”并从“选择”中失去焦点时,它不会重置。有什么想法、线索、建议、建议、帮助吗 $(文档).ready(函数(){ //恢复选择下拉选项的第一个选项 var tt=“”; $(文档).on(“焦点”,“选择”,函数()){ $(this.find('option:first

我想在未选择任何选项时重置选择下拉选项(将选择下拉选项的第一个选项设置为默认值,当失去对选择的关注但未选择任何选项时),正如您在我的代码段中看到的,它可以重置,但问题是,当您从“选择”下拉选项中选择一个选项,然后再次单击“选择”并从“选择”中失去焦点时,它不会重置。有什么想法、线索、建议、建议、帮助吗

$(文档).ready(函数(){
//恢复选择下拉选项的第一个选项
var tt=“”;
$(文档).on(“焦点”,“选择”,函数()){
$(this.find('option:first child').prop({disabled:true}).show();
tt=$(this.val();
});
$(文档)。在(“更改”、“选择”函数()上){
tt=“”;
$(this.focusout();
});
$(文档).on(“focusout”,“select”,函数(){
if($(this).val()==tt){
$(this).find('option:first child').prop({selected:true,disabled:true}).closest(“select”).trigger(“change”);
}
tt=“”;
});
});

选择测试
测试选项1
测试选项2
测试选项3
测试选项4
选择测试
测试选项1
测试选项2
测试选项3
测试选项4

不理解您的问题,请您详细说明并运行我的代码片段!首先,我想要的是,如果在选择下拉菜单处于焦点时没有选择任何选项,则通过将第一个选项设置为默认选项来重置选择下拉菜单(对于第一个选项,selected为true),现在的问题是,当您在选项上选择,然后再次聚焦在选择上,然后在当前聚焦的选择上失去焦点时,选择不会重置,你必须先选择一个选项,然后再对焦,然后再对焦,第二次失去了选择的焦点,才能重置我不想要的选择下拉列表。当你选择一个选项并再次单击选择时,选择不会失去焦点,它只是关闭下拉列表。在点击其他东西之后,它就会失去焦点。因为没有做任何更改,所以会重置。@命名意义25:是的,请尝试在选项上选择,然后单击任意位置(不是在当前焦点选择上),然后再次单击选择,再单击任意位置,选择将重置。我想问题是当选择聚焦时,选择不会重置。这是正确的。您可以在单击“离开”后立即调用“聚焦输出”上的重置事件。您还可以收听单击事件并检查下拉列表是否打开。
$(document).ready(function(){
  //restore the first option of the select dropdown option
    var tt = "";
    var open = false;
    $(document).on("focus","select",function(){
        if(open) {
            open = false;
        }
        $(this).find('option:first-child').prop({ disabled : true }).show();
        tt = $(this).val();
    });
    $(document).on("change","select",function(){
        tt = "";
        $(this).blur();
    });

    $(document).on("blur","select",function(){
        if($(this).val() === tt){
           $(this).find('option:first-child').prop({ selected : true, disabled : true }).closest("select").trigger("change");
        }
        tt = "";
    });
    //When the dropdown closes it blures the select. Catuion this will also trigger 
    //if you open select and select nothing and close it back. In that case the select 
    //will be reset.
     $(document).on("click","select",function(){
        open = !open;       
        if(!open){
             $(this).blur();
        }
     });
});