为什么我的js代码只在mozilla上工作?

nimxete2  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(316)

我创造了 <script> 在我的面前贴上标签 </body> 详情如下:

  1. <script type="text/javascript">
  2. var select = document.getElementById('empresa')
  3. var value = select.options[select.selectedIndex].value
  4. </script>

我创建了一个select,在其中插入如下选项:

  1. <select name="empresa" id="empresa">
  2. <option onclick="javascript: if(value == 'none'){
  3. document.getElementById('umConvite').style.display = 'none'
  4. document.getElementById('doisConvite').style.display = 'none'
  5. document.getElementById('tresConvite').style.display = 'none'
  6. document.getElementById('quatroConvite').style.display = 'none'
  7. document.getElementById('btn-confirmar').style.display = 'none'
  8. }" value="none">-----</option>
  9. <option onclick="javascript:
  10. if(value == 'Empresa 1'){
  11. document.getElementById('umConvite').style.display = 'flex'
  12. document.getElementById('umConvite').style.flexDirection= 'column'
  13. document.getElementById('doisConvite').style.display = 'none'
  14. document.getElementById('tresConvite').style.display = 'none'
  15. document.getElementById('quatroConvite').style.display = 'none'
  16. document.getElementById('btn-confirmar').style.display = 'flex'
  17. }
  18. " value="Empresa 1">Empresa 1</option>
  19. <option onclick="if(value == 'Empresa 2'){
  20. document.getElementById('doisConvite').style.display = 'flex'
  21. document.getElementById('doisConvite').style.flexDirection= 'column'
  22. document.getElementById('umConvite').style.display = 'none'
  23. document.getElementById('tresConvite').style.display = 'none'
  24. document.getElementById('quatroConvite').style.display = 'none'
  25. document.getElementById('btn-confirmar').style.display = 'flex'
  26. }" value="Empresa 2">Empresa 2</option>
  27. </select>

这个 Mozilla Firefox 工作正常,但在chrome和safari中不工作,我如何解决这个问题?

mwg9r5ms

mwg9r5ms1#

您可以在不使用任何javascript代码和select标记的触发器更改事件的情况下定义select选项,并检查您的条件:

  1. var select = document.getElementById("empresa");
  2. select.addEventListener('change', function (e) {
  3. func(e);
  4. });
  5. function func(e) {
  6. debugger
  7. if (e.target.value == 'none') {
  8. alert("none");
  9. //document.getElementById('umConvite').style.display = 'none'
  10. //document.getElementById('doisConvite').style.display = 'none'
  11. //document.getElementById('tresConvite').style.display = 'none'
  12. //document.getElementById('quatroConvite').style.display = 'none'
  13. //document.getElementById('btn-confirmar').style.display = 'none'
  14. }
  15. else if (e.target.value == 'Empresa 1') {
  16. alert("Empresa 1");
  17. //document.getElementById('umConvite').style.display = 'flex'
  18. //document.getElementById('umConvite').style.flexDirection = 'column'
  19. //document.getElementById('doisConvite').style.display = 'none'
  20. //document.getElementById('tresConvite').style.display = 'none'
  21. //document.getElementById('quatroConvite').style.display = 'none'
  22. //document.getElementById('btn-confirmar').style.display = 'flex'
  23. }
  24. else if (e.target.value == 'Empresa 2') {
  25. alert("'Empresa 2'")
  26. //document.getElementById('doisConvite').style.display = 'flex'
  27. //document.getElementById('doisConvite').style.flexDirection = 'column'
  28. //document.getElementById('umConvite').style.display = 'none'
  29. //document.getElementById('tresConvite').style.display = 'none'
  30. //document.getElementById('quatroConvite').style.display = 'none'
  31. //document.getElementById('btn-confirmar').style.display = 'flex'
  32. }
  33. }
  1. <select name="empresa" id="empresa">
  2. <option value="none">
  3. -----
  4. </option>
  5. <option value="Empresa 1">
  6. Empresa 1
  7. </option>
  8. <option value="Empresa 2">
  9. Empresa 2
  10. </option>
  11. </select>

请注意,因为我没有完整的html(包含 umConvite, doisConvite .. ids)我只是在每种情况下显示警报。

展开查看全部

相关问题