跳过使用javascript选择输入的常规行为

跳过使用javascript选择输入的常规行为,javascript,events,select,preventdefault,Javascript,Events,Select,Preventdefault,我有一个表单,在下拉选项列表中有一些选项 要求:点击选择输入时,我需要检查表单的有效性。如果表单不完整,我需要跳过选择输入的行为,即不显示选项列表。 但是,如果表单已完成,则选择输入应显示选项(即正常行为) 问题:我尝试了event.preventDefault()跳过进一步的操作,假设表单不完整时,select输入不会向我显示选项。 但这不起作用 查找代码: $('selectInput').addEvent('click', function(event){ if(!validateFo

我有一个表单,在下拉选项列表中有一些选项

要求:点击选择输入时,我需要检查表单的有效性。如果表单不完整,我需要跳过选择输入的行为,即不显示选项列表。 但是,如果表单已完成,则选择输入应显示选项(即正常行为)

问题:我尝试了event.preventDefault()跳过进一步的操作,假设表单不完整时,select输入不会向我显示选项。 但这不起作用

查找代码:

$('selectInput').addEvent('click', function(event){
  if(!validateForm()){
    if(event.preventDefault){
      event.preventDefault();
    } else {
      //IE
      event.returnValue = false;
    }
  }
});

我的建议是在onclick中添加选项。如果验证通过,请添加选项,否则不执行任何操作。

您可以在每次更改验证参数时禁用/启用select


否则,我注意到您正在使用jQuery,因此您可以使用自己的或已经使用您的特性制作的…

您是否尝试过
返回false?这通常可以防止子按钮的默认行为,它可能适用于select…是的,我尝试了..问题是在执行代码之前..显示了选项列表。所以我想我们应该手动关闭选项列表。如何实现是我面临的障碍解决了吗→ 是的,我甚至认为。但是如果表单最初是有效的,但在更新同一表单时,用户(留下一些字段不完整)使表单再次无效,这甚至会使您考虑再次清除这些选项列表。如果您没有许多要验证的字段,您可以只向其添加一个验证函数,以确保表单是否无效,选项将被删除。从我的想法来看,我明白这不是一种优化的方法。哦,是的,“禁用-启用”逻辑是我的备用选项。如果我可能错过了,我想请你们获得更好的优化想法。@Zohaib我想即使你们已经找到了确切问题的答案,这在很大程度上取决于不同的浏览器。如果确实需要此功能,请将禁用字段的样式更改为启用字段的样式,或者使用jquery自定义控件