[英]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.