Поскольку ajax - это асинхронный вызов ... ваша страница не будет ждать, пока вы будете выполнять валидацию, если вы используете обычную кнопку отправки и форму, один из способов сделать это - использовать protectDefault () для предотвращения отправки формы.
Следующим шагом вы можете позвонить своему второму Ajax после того, как первый будет сделан или завершен, и только после второго вызова AJAX, который вы отправляете или формируете или не делаете.
window.addEventListener("load", function(){
/* Declaring Functions */
const Validations = () => {
$.ajax({
type: "POST",
url: "...",
dataType: "json",
data: {
"somedata": "..."
},
success: function (response) {
/* Passed in first validation */
/* Call the second validation */
Validation2();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
/* Throw Error */
}
});
}
/* Declaring Functions */
const Validation2 = () => {
$.ajax({
type: "POST",
url: "...",
dataType: "json",
data: {
"somedata": "..."
},
success: function (response) {
/* Passed in second validation */
/* Submit the form */
$("#MyForm").unbind('submit').submit();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
/* Throw Error */
}
});
}
/* Declaring Events */
// If you place your JS inside CFM page you will have to place 2 # or will prompt a error
$("#MyForm").submit(function(e){
e.preventDefault();
Validations();
});
});
Или ... если вы хотите разделить 2 ajax, вы можете просто связать оба ajax по событию click в вашей кнопке, но вы не можете захватить ответ каждого из них, чтобы заставить оба работать вместе.
В javascript вы можете привязывать одни и те же события к одним и тем же элементам, они складывают друг друга.
window.addEventListener("load", function(){
$("#MyButton").click(function(e){
e.preventDefault();
/* Call Ajax 1 */
$.ajax({
type: "POST",
url: "...",
dataType: "json",
data: {
"somedata": "..."
},
success: function (response) {
/* Passed in first validation */
/* Call the second validation */
Validation2();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
/* Throw Error */
}
});
});
$("#MyButton").click(function(e){
e.preventDefault();
/* Call Ajax 2 */
$.ajax({
type: "POST",
url: "...2",
dataType: "json",
data: {
"somedata2": "...2"
},
success: function (response) {
/* Passed in first validation */
/* Call the second validation */
Validation2();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
/* Throw Error */
}
});
});
});