Javascript 创建两个共同相关的元素
注意,这个问题绝对不是关于级联选择的。我知道怎么做。请在标记为重复之前阅读,您将看到这不是级联,而是相互依赖 我正在写一个表单,其中包括按年度过滤搜索结果。我为此使用了两个下拉选择框,其中ID为from和to。应用程序的逻辑显然需要to值>=from值。我希望这能反映在表示层中。也就是说,如果我在“发件人”下拉列表中选择了1998,那么我只能在“收件人”下拉列表中选择大于1998的选项,反之亦然 我已经实现了一个最简单的例子,如下所示。如果用户选择from选项,然后选择to选项,然后继续,则此解决方案效果良好。但是,如果用户不断地来回更改,那么问题就会开始出现。这样做的原因是,每当其他select更改时,我会重新设置select的所有选项的HTML。但这也有重置默认值的效果 例如,如果我在下面的示例中从中选择3,然后从中选择5,然后返回并从中选择2,则“收件人”框将重置为2,即使5是一个有效的选择 我的问题是,有没有比使用.innerHTML和重置整个选项列表更好的方法呢?或者,如果默认值仍然有效,我是否需要手动将其恢复到原来的状态 我希望这有点清楚。我是新到前端的,抱歉。代码如下: 函数更新对象{ var to=document.getElementByIdto; updateto,e.value,6; } 函数更新组{ var from=document.getElementByIdfrom; updatefrom,1,e.值; } 函数updateelmnt、beginValue、endValue{ 选择=Javascript 创建两个共同相关的元素,javascript,html,html-select,Javascript,Html,Html Select,注意,这个问题绝对不是关于级联选择的。我知道怎么做。请在标记为重复之前阅读,您将看到这不是级联,而是相互依赖 我正在写一个表单,其中包括按年度过滤搜索结果。我为此使用了两个下拉选择框,其中ID为from和to。应用程序的逻辑显然需要to值>=from值。我希望这能反映在表示层中。也就是说,如果我在“发件人”下拉列表中选择了1998,那么我只能在“收件人”下拉列表中选择大于1998的选项,反之亦然 我已经实现了一个最简单的例子,如下所示。如果用户选择from选项,然后选择to选项,然后继续,则此解
对于var i=beginValue;i请尝试以下代码段-代码本身就说明了这一点: //重新编写选项 const updateOptionElements=elt、low、high、selected=null=>{ elt.innerHTML=; 因为let i=低;i{ toSelected=+evt.target.value; 将选项元素从,更新为Selected+1,10,从Selected; } from.onchange=evt=>{ fromSelected=+evt.target.value; 将选项元素更新为0,从选定项更新为选定项; }
请尝试此代码段-代码本身就说明了问题: //重新编写选项 const updateOptionElements=elt、low、high、selected=null=>{ elt.innerHTML=; 因为let i=低;i{ toSelected=+evt.target.value; 将选项元素从,更新为Selected+1,10,从Selected; } from.onchange=evt=>{ fromSelected=+evt.target.value; 将选项元素更新为0,从选定项更新为选定项; }
只需将之前选择的值设置为temp变量值,然后再次将其设置为select after innerHTML 函数更新对象{ var to=document.getElementByIdto; var值=to.value; updateto,e.value,6; to.value=值
是第一名,但比你高。@Neil谢谢你,你真是太好了