jquery不会关注所选项目

时间:2015-02-08 11:50:42

标签: javascript jquery

我有以下代码:

  1. 如果用户在文本输入中输入值
  2. ,请选中相关复选框
  3. 验证用户输入是否重复,警告并将文本输入集中在用户插入错误值的位置
  4. 这是我的代码:

    $('.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); 
        }
    });
    

    即使console.log显示'this'是正确的元素,唯一不起作用的是$(this).focus();

    编辑:这是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文本编辑的一些问题。

1 个答案:

答案 0 :(得分:0)

您的代码确实有效,请查看这个小提琴:http://jsfiddle.net/6pbx2yof/

检查您的其他代码是否与其干扰。我删除了其他所有内容并检查它是否有效,然后逐个重新添加其他代码。

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>