簡體   English   中英

jQuery最近的問題()和addClass()

[英]Problem with jquery closest() and addClass()

我現在陷入困境,我們將不勝感激。 我在Bootstrap模態中有以下表單:

<form action="" method="post" id="UserForm" class="form-horizontal">
<div class="modal-body">
    <div class="form-group">
        <label for="iUserName" class="col-sm-3 control-label">User Name</label>
        <div class="col-sm-9">
            <input type="text" class="form-control" name="iUserName" id="iUserName" placeholder="User Name" value="" />
        </div>
    </div>

    <div class="form-group">
        <label for="iPassword" class="col-sm-3 control-label">Password</label>
        <div class="col-sm-9">
            <input type="password" class="form-control" name="iPassword" id="iPassword" placeholder="iPassword" value="" />
        </div>
    </div>

    <div class="form-group">
        <label for="iConfPassword" class="col-sm-3 control-label">Confirm Password</label>
        <div class="col-sm-9">
            <input type="password" class="form-control" name="iConfPassword" id="iConfPassword" placeholder="Confirm Password" value="" />
        </div>
    </div>

    <div class="form-group">
        <label for="iRoleSelect" class="col-sm-3 control-label">Role</label>
        <div class="col-sm-9">
            <select class="form-control select2" id="iRoleSelect" name="iRoleSelect" style="width: 100%;"></select>
        </div>
    </div>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-info pull-left" data-dismiss="modal">Cancel</button>
    <button type="submit" class="btn btn-info pull-right">Save</button>
</div>
</form>

這是我的JS:

$('#UserForm').on('submit', function () {
        var flag_UserName, flag_Password, flag_Role
        var emptyInput = $('#UserForm').find('input[type=text], input[type=password], select').val('')
        for (var i = 0; i < emptyInput.length; i++) {
            var div = emptyInput[i].closest('.form-group').addClass('has-warning')
            console.log(div)
            return false;
        }
    })

我想做的是查找表單中的每個空輸入,然后將新的“具有警告”類添加到距該輸入最近的div中。 我當前的代碼給我這個錯誤:

TypeError: emptyInput[i].closest(...).addClass is not a function

我希望你嘗試這樣做

 $('#UserForm').on('submit', function () { var flag_UserName, flag_Password, flag_Role var emptyInput = $('#UserForm').find('input[type=text], input[type=password], select'); for (var i = 0; i < emptyInput.length; i++) { $(emptyInput[i]).closest('.form-group').removeClass('has-warning') if($(emptyInput[i]).val()=='' || $(emptyInput[i]).val()==null){ var div = $(emptyInput[i]).closest('.form-group').addClass('has-warning') return false; break; } } }); 
 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <form action="" method="post" id="UserForm" class="form-horizontal"> <div class="modal-body"> <div class="form-group"> <label for="iUserName" class="col-sm-3 control-label">User Name</label> <div class="col-sm-9"> <input type="text" class="form-control" name="iUserName" id="iUserName" placeholder="User Name" value="" /> </div> </div> <div class="form-group"> <label for="iPassword" class="col-sm-3 control-label">Password</label> <div class="col-sm-9"> <input type="password" class="form-control" name="iPassword" id="iPassword" placeholder="iPassword" value="" /> </div> </div> <div class="form-group"> <label for="iConfPassword" class="col-sm-3 control-label">Confirm Password</label> <div class="col-sm-9"> <input type="password" class="form-control" name="iConfPassword" id="iConfPassword" placeholder="Confirm Password" value="" /> </div> </div> <div class="form-group"> <label for="iRoleSelect" class="col-sm-3 control-label">Role</label> <div class="col-sm-9"> <select class="form-control select2" id="iRoleSelect" name="iRoleSelect" style="width: 100%;"></select> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-info pull-left" data-dismiss="modal">Cancel</button> <button type="submit" class="btn btn-info pull-right">Save</button> </div> </form> 

嘗試使用$符號。 工作示例:

 $('#UserForm').on('submit', function () { var flag_UserName, flag_Password, flag_Role var emptyInput = $('#UserForm').find('input[type=text], input[type=password], select').val(''); for (var i = 0; i < emptyInput.length; i++) { var div = $(emptyInput[i]).closest('.form-group').addClass('has-warning') console.log(div) } return false; }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="" method="post" id="UserForm" class="form-horizontal"> <div class="modal-body"> <div class="form-group"> <label for="iUserName" class="col-sm-3 control-label">User Name</label> <div class="col-sm-9"> <input type="text" class="form-control" name="iUserName" id="iUserName" placeholder="User Name" value="" /> </div> </div> <div class="form-group"> <label for="iPassword" class="col-sm-3 control-label">Password</label> <div class="col-sm-9"> <input type="password" class="form-control" name="iPassword" id="iPassword" placeholder="iPassword" value="" /> </div> </div> <div class="form-group"> <label for="iConfPassword" class="col-sm-3 control-label">Confirm Password</label> <div class="col-sm-9"> <input type="password" class="form-control" name="iConfPassword" id="iConfPassword" placeholder="Confirm Password" value="" /> </div> </div> <div class="form-group"> <label for="iRoleSelect" class="col-sm-3 control-label">Role</label> <div class="col-sm-9"> <select class="form-control select2" id="iRoleSelect" name="iRoleSelect" style="width: 100%;"></select> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-info pull-left" data-dismiss="modal">Cancel</button> <button type="submit" class="btn btn-info pull-right">Save</button> </div> </form> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM