Javascript jquery不聚焦所选项目

Javascript jquery不聚焦所选项目,javascript,jquery,Javascript,Jquery,我有以下代码: 如果用户在文本输入中输入值,请选中相关复选框 验证用户输入是否重复,警告并聚焦用户插入错误值的文本输入 这是我的代码: $('.seq').blur(function(){ if($(this).val()!=''){ $(this).closest(".percheckbox").find("input:checkbox:first").prop("checked", true); if ($('.seq').not(this).val

我有以下代码:

如果用户在文本输入中输入值,请选中相关复选框 验证用户输入是否重复,警告并聚焦用户插入错误值的文本输入 这是我的代码:

$('.seq').blur(function(){

    if($(this).val()!=''){
        $(this).closest(".percheckbox").find("input:checkbox:first").prop("checked", true);
        if ($('.seq').not(this).val() == $(this).val()) {
            alert('Duplicated entry. Change it please.');
            console.log($(this).attr('name'));
            $(this).focus();
        }
    }else if ($(this).val()=='') {
        $(this).closest(".percheckbox").find("input:checkbox:first").prop("checked", false); 
    }
});
唯一不起作用的一点是$this.focus;即使console.log显示“this”是正确的元素

编辑:这是html:

<div class="sez-form">
    <fieldset>
        <legend>Messaggi inclusi</legend>

    <?php $i = 0; foreach($msgs as $msg) { ?>

        <div class="percheckbox">
            <input class="checkseq" type="checkbox" name="messaggio[<?php echo $i; ?>]" value="<?php echo $msg['id']; ?>">
            <?php echo $msg['nome']; ?>
            <br>
            <label>Ordine: </label><input class="seq" size="2" maxlength="2" type="text" name="ordine[<?php echo $i; ?>]">
        </div>
    <?php $i += 1; } ?> 
    <br style="clear: both;">
</div>

很抱歉,错误的代码格式,但我仍然有一些问题与stackoverlow文本编辑

您的代码实际上可以工作,请检查以下内容:

检查您的其他代码是否与之冲突。我会删除所有其他代码并检查是否有效,然后逐段重新添加其他代码

Stackoverflow不允许我在没有代码的情况下回答,所以这里是我使用的html代码,JS代码没有改变

<div class="sez-form">
    <fieldset>
        <legend>Messaggi inclusi</legend>

        <div class="percheckbox">
            <input class="checkseq" type="checkbox" name="messaggio0" value="0"/>
            0
            <br>
           <label>Ordine: </label>
           <input class="seq" size="2" maxlength="2" type="text" name="ordine0"/>
        </div>

        <div class="percheckbox">
            <input class="checkseq" type="checkbox" name="messaggio1" value="1"/>
            1
            <br>
           <label>Ordine: </label>
           <input class="seq" size="2" maxlength="2" type="text" name="ordine1"/>
        </div>

    </fieldset>
    <br style="clear: both;">
</div>

要在列表后设置正确的格式,请在列表和代码之间设置一行。事件hmtl注释将起作用。此外,在模糊事件中提醒和聚焦也是非常糟糕的做法。您需要在所有浏览器中使用超时来处理这两个建议。警报将被DOM本身中的另一个通知替换。无论如何,在这种情况下,我将检查超时函数的使用情况!你绝对应该缓存$this。你说@dl3是什么意思?为什么我要更改$this?我们可以看到html吗?