Javascript 表单中的此查找标签无效

Javascript 表单中的此查找标签无效,javascript,jquery,Javascript,Jquery,我在一个页面中有两个相同类的表单。这些形式与相同的元素完全相同。在提交其中一个时,我尝试访问其中的元素。以下是表格的外观: <form role="form" class="login-form" id="login-form"> {% csrf_token %} <div class="form-group"> <div class="input-icon"&g

我在一个页面中有两个相同类的表单。这些形式与相同的元素完全相同。在提交其中一个时,我尝试访问其中的元素。以下是表格的外观:

<form role="form" class="login-form" id="login-form">
                  {% csrf_token %}
                <div class="form-group">
                  <div class="input-icon">
                    <i class="icon fa fa-user"></i>
                    <input type="text" class="form-control" name="email" placeholder="Username" id="email">
                  </div>
                </div>
                <div class="form-group">
                  <div class="input-icon">
                    <i class="icon fa fa-unlock-alt"></i>
                    <input type="password" class="form-control" placeholder="Password" name="password" id="password">
                  </div>
                </div>
                <div>
                  <!--input type="checkbox" id="remember" name="rememberme" value="forever" style="float: left;"-->
                  <label style="display: none; color: red;" id="incorrect_info">Veuillez vérifier vos informations</label>
                </div>

                <button class="btn btn-common log-btn">Se connecter</button>
              </form>
此代码适用于输入,但不适用于未找到的标签

编辑:

抱歉,这里是代码的实际样子。在ajaxdone中调用find

$('.login-form').submit(function(e){
    e.preventDefault();
    // Get information

    email = $(this).find('input[id="email"]').val();
    pass = $(this).find('input[id="password"]').val();

    $.ajax({
        .......
    }).done(function (data) {
        if (data.success) {
            window.location.href = data.url;
        }
        else {
            $(this).find('label[id="incorrect_info"]').css('display','block');
        }
    });

});

我明白了。问题是$(这个)范围在ajax函数中是不同的。我所做的是在进入它之前保存它,然后在以下情况下重新使用它:

$('.login-form').submit(function(e){
    e.preventDefault();
    // Get information

    this_form = $(this);

    email = $(this).find('input[id="email"]').val();
    pass = $(this).find('input[id="password"]').val();

    $.ajax({
        ......
        success  : function(data, status){
        }
    }).done(function (data) {
        if (data.success) {
            window.location.href = data.url;
        }
        else {
            this_form.find('label[id="incorrect_info"]').css('display','block');
        }
    });

});

它可以工作,为什么不呢?您的代码在隔离状态下似乎可以正常工作:。你能提供一个关于这个问题的工作实例吗。还要注意的是,您的代码暗示您使用的是重复的
id
属性,这是无效的,并解释了您使用属性选择器根据元素的id查找元素的原因。使用类代替标题有没有不使用相同类而不使用相同id的具体原因?请看:@Kartal,我没有注意到我使用的是同一个id。我会更改它。事实上,调用find很好,因为它在小提琴中。然而,我称之为ajax内部完成。我编辑了我的帖子
$('.login-form').submit(function(e){
    e.preventDefault();
    // Get information

    this_form = $(this);

    email = $(this).find('input[id="email"]').val();
    pass = $(this).find('input[id="password"]').val();

    $.ajax({
        ......
        success  : function(data, status){
        }
    }).done(function (data) {
        if (data.success) {
            window.location.href = data.url;
        }
        else {
            this_form.find('label[id="incorrect_info"]').css('display','block');
        }
    });

});