У меня есть простая страница «Регистрация пользователя» с полем «Имя пользователя» и другими полями.Мое требование: «имя пользователя» не должно дублироваться, для этого я написал функцию ajax, которая проверяет, является ли имя пользователя дубликатом, и, если он дублируется, он печатает сообщение об ошибке ниже поля «имя пользователя», этот поток работает нормально, проблема возникаеткогда я нажимаю кнопку «отправить», даже с сообщением «имя пользователя не уникально» я могу сохранить страницу [хотя я могу перехватить исключение и обработать его соответствующим образом].Я знаю, что это происходит, потому что я просто отображаю сообщение об ошибке, а не привязываю ошибку к полю 'username'.Как связать сообщение об ошибке с полем имени пользователя (в случае ошибки дублирования имени пользователя), чтобы страница не отправлялась до тех пор, пока эта ошибка не будет удалена?
Код ниже
1.JQuery
function check_username(){
$("#usernamentavlberror").empty();
var developerData = {};
developerData["userName"] = $("#username").val();
$.ajax({
type: 'POST',
contentType : "application/json",
url: '/checkForDuplicateUsername',
data : JSON.stringify(developerData),
dataType : 'json',
success: function(data){
if(data == "userNameExists"){
alert("inside user")
$("#usernamentavlberror").html("UserName Not Available");
}
else {
//do perform other actions like displaying error messages etc.,
}
},
error : function(data) {
alert("error---"+data);
}
});
}
Лист Thymeleaf
<form action="#" th:action="@{/signup}" th:object="${user}" method=post>
<div class="form-group input-group">
<div class="input-group-prepend">
<span class="input-group-text"> <i class="fa fa-user"></i>
</span>
</div>
<input name="username" th:field="*{username}" class="form-control" placeholder="User Name" type="text" id="username">
</div>
<div class="form-group input-group" th:if="${#fields.hasErrors('username')}" th:errors="*{username}"></div>
<div class="form-group input-group" id="usernamentavlberror"></div>
.
.
</form>```