Javascript 操纵其他DOM元素时未选择单选按钮

Javascript 操纵其他DOM元素时未选择单选按钮,javascript,html,css,Javascript,Html,Css,我面临的问题发生在单选按钮点击上。 当输入字段具有焦点且发生模糊事件时,将发生一些字段验证,错误消息应显示在输入字段下方。 在以下场景中: 关注文本输入字段 单击单选按钮 显示错误消息,但未选择单选按钮。小提琴: 请参阅下面的代码片段: $('input.yo').focus(); $('input.yo').focus(函数(){ $('div#message').hide(); }); $('input.yo').blur(函数(){ $('div#message').show(); //

我面临的问题发生在单选按钮点击上。 当输入字段具有焦点且发生模糊事件时,将发生一些字段验证,错误消息应显示在输入字段下方。 在以下场景中:

  • 关注文本输入字段
  • 单击单选按钮
  • 显示错误消息,但未选择单选按钮。小提琴:

    请参阅下面的代码片段:

    $('input.yo').focus();
    $('input.yo').focus(函数(){
    $('div#message').hide();
    });
    $('input.yo').blur(函数(){
    $('div#message').show();
    //$('div#message')。延迟(100)。显示(0);
    });
    
    #消息{
    显示:无;
    }
    
    名字:
    
    一些验证错误消息 选择1 选择2
    是的,您可以使用变通方法:

    $('input.yo').blur(function() {
        setTimeout(function() { $('p').show(); }, 100);
    });
    
    希望这有帮助

    $('input.yo').focus();
    $('input.yo').focus(函数(){
    $('p').hide();
    });
    $('input.yo').blur(函数(){
    setTimeout(函数(){$('p').show();},100);
    });
    
    p{
    显示:无;
    }
    
    名字:
    一些验证错误消息

    选择1 选择2
    很简单,请注意:

    我们在这里有两个动作:

    1 将焦点放在输入之外:

    当您按下鼠标按钮(或TAB键,但让我们想想鼠标)时,会触发该操作

    2#选中单选按钮:

    当按下鼠标按钮并松开按钮时,该动作被触发,这意味着只有在松开按钮时才会选中单选按钮

    现在,想想看。当您按出输入时(在我们的例子中是单选按钮),您正在显示
    ,但是只有当您松开单选按钮上方的按钮时,才会检查单选按钮,但是
    已经在按钮之前的位置。你看到问题了吗

    孤子

    只需添加一种不同的方式来显示您的消息,它不会与单选按钮的位置冲突。您可以使用
    位置
    ,或更简单的方式进行样式设置,如下所示:


    我希望它能帮助你。:)

    添加的代码片段供将来参考。谢谢Claudio。我也知道这个解决方案。但是,如果你不能移动信息,并且它应该在那里(即使设计不是最好的)。我想知道在不改变错误消息位置的情况下,是否还有其他方法可以在这里完成。当然,总有一种方法,总有一种方法。您可以在jQuery中使用
    mousedown
    切换选中
    单选按钮
    。执行此操作时,无需释放“单击选择”按钮。看看这里:很好,这是更好的解决方案:)谢谢汉克斯,这是我在问题中已经提到的另一个解决方案。但这并不理想,我希望避免使用超时。