这可能无法直接回答您的问题,但是可以通过简单的设计级别调整来解决此问题。我了解这可能并非100%适用于所有用例,但我强烈建议您考虑重新考虑应用程序的用户流程,以及是否可以实施以下设计建议。
我决定做一些简单的黑客比替代品onChange()
使用并不真正意味着用于此目的的其他事件(blur
,click
,等)
我解决的方式:
只需在前面附加一个没有任何价值的占位符选项标签(例如select)。
因此,不仅要使用以下结构,还需要hack-y替代方案:
<select>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
考虑使用此:
<select>
<option selected="selected">Select...</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
这样,onChange
每次用户决定选择默认值以外的其他代码时,您的代码就会更加简化,并且可以按预期工作。disabled
如果您不希望他们再次选择该属性,并强迫他们从选项中选择某些内容,则可以触发该事件,甚至可以将属性添加到第一个选项onChange()
。
在回答这个问题时,我正在编写一个复杂的Vue应用程序,我发现这种设计选择大大简化了我的代码。在解决该问题之前,我花了几个小时解决这个问题,而不必重新编写很多代码。但是,如果我选择了别具一格的替代方案,则需要考虑一些极端情况,以防止再次触发ajax请求等。这也不会破坏默认的浏览器行为,这是一个不错的收获(在移动设备上进行了测试)浏览器)。
有时,您只需要退后一步,考虑一下最简单的解决方案的概况。