我有 2 个简单的脚本和 2 个 Thymeleaf 变量,如果 thymeleaf 变量为真,我希望执行一个脚本,如果其他变量为真,则再次执行 - 要执行的相关脚本等等。 但是我得到以下结果 - 如果一个变量为真并且执行了脚本,那么即使第二个变量为真,第二个脚本也不会被执行。 所以很快,只执行了一个脚本,但需要两个(按顺序,不是同时)。 这是代码:
<script th:inline="javascript">
var flag = [[${invalidInput}]]; //Thymleaf variable
window.onload = function() {
if(!flag)
return;
openForm();
};
</script>
<script th:inline="javascript">
var flag = [[${exists}]];
window.onload = function() {
if(!flag)
return;
openForm();
};
</script>
<!-- MODAL -->
<div class="form-popup" id="myForm">
<form id="registration" th:action="@{/registrate}" th:object="${newUser}" method="post" class="form-container">
<h1>Registration</h1>
<div class="alert" th:if="${exists}">
User already exists! Please try again.
</div>
<div class="invalidInput" th:if="${invalidInput}">
Username or password too short.
</div>
************************************************************
<script>
function openForm() {
document.getElementById("myForm").style.display = "block";
}
@PostMapping("/registrate")
public String login (@ModelAttribute(value = "newUser") User newUser, BindingResult bindingResult, Model model) {
userValidator.validate(newUser, bindingResult);
if(usrService.isUserPresent(newUser.getUsername())){
model.addAttribute("exists",true);
return "login";
}
else if(bindingResult.hasErrors()){
model.addAttribute("invalidInput",true);
return "login";
}