Javascript 在使用prevAll()时选择“不正确更新值”

Javascript 在使用prevAll()时选择“不正确更新值”,javascript,jquery,Javascript,Jquery,我有两个选择字段,您可以在其中选择时间,从和到。我想防止用户在“from”之前选择“to”时间 问题是,如果您在08:30选择“从”,当它第一次正常工作时,您不能选择低于此值的“到”。但是,如果将第一次选择从再次更改为07:00,则“选择到”不会更新,您将被卡住。只能从第一个选择中进行拾取 $from.changefunction{ var fromVal=$this.val; var min_time_limit=parseIntfromVal+4; $'to'.valmin\u时限; $'

我有两个选择字段,您可以在其中选择时间,从和到。我想防止用户在“from”之前选择“to”时间

问题是,如果您在08:30选择“从”,当它第一次正常工作时,您不能选择低于此值的“到”。但是,如果将第一次选择从再次更改为07:00,则“选择到”不会更新,您将被卡住。只能从第一个选择中进行拾取

$from.changefunction{ var fromVal=$this.val; var min_time_limit=parseIntfromVal+4; $'to'.valmin\u时限; $'to option[value='+min\u time\u limit+']'。prevAll.prop'disabled',true; }; 07:00 07:30 08:00 08:30 09:00 09:30 10:00 10:30 11:00 11:30 12:00 12:30 13:00 13:30 14:00 14:30 15:00 15:30 16:00 16:30 17:00 17:30 18:00 18:30 19:00 19:30 20:00 20:30 21:00 21:30 22:00 07:00 07:30 08:00 08:30 09:00 09:30 10:00 10:30 11:00 11:30 12:00 12:30 13:00 13:30 14:00 14:30 15:00 15:30 16:00 16:30 17:00 17:30 18:00 18:30 19:00 19:30 20:00 20:30 21:00 21:30 22:00
问题在于,当您从一段时间移动到更早的位置时,您从未重新启用选项元素。您需要重新安排逻辑,首先重新启用to选项,然后筛选早于from的选项并禁用它们。试试这个:

$from.changefunction{ var fromVal=$this.val; var min_time_limit=parseIntfromVal+4; var$to=$'to'.valmin\u time\u limit; var$options=$to.children'option'.prop'disabled',false; $options.filter'[value='+min\u time\u limit+']''.prevAll.prop'disabled',true; }; 07:00 07:30 08:00 08:30 09:00 09:30 10:00 10:30 11:00 11:30 12:00 12:30 13:00 13:30 14:00 14:30 15:00 15:30 16:00 16:30 17:00 17:30 18:00 18:30 19:00 19:30 20:00 20:30 21:00 21:30 22:00 07:00 07:30 08:00 08:30 09:00 09:30 10:00 10:30 11:00 11:30 12:00 12:30 13:00 13:30 14:00 14:30 15:00 15:30 16:00 16:30 17:00 17:30 18:00 18:30 19:00 19:30 20:00 20:30 21:00 21:30 22:00
您的代码中有两个问题:

您需要使用$to option.prop'disabled',false;在禁用要选择的选项之前。 您需要执行var min\u time\u limit=parseIntfromVal+1;因此,它将完全禁用要选择的中所需的选项数。 $from.changefunction{ var fromVal=$this.val; var min_time_limit=parseIntfromVal+1; $'to'.valmin\u时限; //启用所有选项 $'to option'.prop'disabled',false; //仅禁用所需的选项 $'to option[value='+min\u time\u limit+']'。prevAll.prop'disabled',true; }; 07:00 07:30 08:00 08:30 09:00 07:00 07:30 08:00 08:30 09:00
只要让所有人都不残疾

$('#to option').prop('disabled', false);
之前,将标记为禁用