我在一個購物車專案中,我在表單部分,我必須通過后端驗證一個表單,這會向我發回一個生成訂單號的回應,然后我必須在本地的另一個 html 頁面中顯示該訂單號,
它作業得很好但是當我按下發送按鈕時重定向沒有完成,除了我想在點擊按鈕時執行這個重定向,
我想指定我在 promise 中使用方法 async 和 await (我還不熟悉這些方法)所以我想知道當時是否可以進行重定向或將表單發??送到后端或簡單地減少承諾的時間?
我嘗試使用 if 檢查回應是否具有 201 狀態,然后它重定向到帶有訂單 ID 的確認頁面:
requetePostVersLapi.then(async(res)=>
{
let numeroDeCommande = await res.json()
// If the request is accepted and the form send then redirect to confirmation.html
if(res.status == 201)
{
window.location.href=`confirmation.html?orderId=${numeroDeCommande.orderId}`
// window.location.href=`confirmation.html?orderId=${numeroDeCommande.orderId}`=*
}
// Quand le formulaire est envoyé...
myForm.addEventListener('submit',(e)=>
{
const firstNameInput = document.getElementById('firstName')
const lastNameInput = document.getElementById('lastName')
const addressInput = document.getElementById('address')
const cityInput = document.getElementById('city')
const emailInput = document.getElementById('email')
let RegexName = new RegExp(/^[a-zA-z-\s] $/)
let RegexCity = new RegExp(/^[a-zA-z-\s] $/)
let RegexAdress = new RegExp(/^[a-zA-z-\s] $/)
let RegexEmail = new RegExp(/^\w ([\.-]?\w )*@\w ([\.-]?\w )*(\.\w{2,3}) $/)
const checkFirstName = function ()
{
const firstNameErrorMsg = document.getElementById('firstNameErrorMsg')
if(RegexName.test(firstNameInput.value) === false)
{
firstNameErrorMsg.innerHTML = "Veuillez uniquement saisir des lettres"
e.preventDefault()
}
else if (RegexName.test(firstNameInput.value) === true){
firstNameErrorMsg.innerHTML = " ";
}
}
const checkLastName = function()
{
const lastNameErrorMsg = document.getElementById('lastNameErrorMsg')
if(RegexName.test(lastNameInput.value) === false)
{
lastNameErrorMsg.innerHTML = "Veuillez uniquement saisir des lettres"
e.preventDefault()
}
else if (RegexName.test(lastNameInput.value) === true){
lastNameErrorMsg.innerHTML = " ";
}
}
const checkAddress = function ()
{
const addressErrorMsg = document.getElementById('addressErrorMsg')
if(RegexAdress.test(addressInput.value) === false)
{
addressErrorMsg.innerHTML = "L'adresse saisi est incorrecte"
e.preventDefault()
}
else if(RegexAdress.test(addressInput.value) === true){
addressErrorMsg.innerHTML = "";
}
}
const checkCity = function ()
{
const cityErrorMsg= document.getElementById('cityErrorMsg')
if(RegexCity.test(cityInput.value) === false)
{
cityErrorMsg.innerHTML = "Veuillez saisir un nom de ville correcte"
e.preventDefault()
}
else if(RegexCity.test(cityInput.value) === true){
cityErrorMsg.innerHTML = "";
}
}
const checkEmail = function ()
{
const emailErrorMsg= document.getElementById('emailErrorMsg')
if(RegexEmail.test(emailInput.value) === false)
{
emailErrorMsg.innerHTML = "Veuillez saisir une adresse mail correcte"
e.preventDefault()
}
else if(RegexCity.test(emailInput.value) === true){
emailErrorMsg.innerHTML = "";
}
}
checkFirstName()
checkLastName()
checkAddress()
checkCity()
checkEmail()
})
// /**END OF FORMULAIRE */
})
<form method="get" class="cart__order__form">
<div class="cart__order__form__question">
<label for="firstName">Prénom: </label>
<input type="text" name="firstName" id="firstName" required>
<p id="firstNameErrorMsg"><!-- ci est un message d'erreur --></p>
</div>
<div class="cart__order__form__question">
<label for="lastName">Nom: </label>
<input type="text" name="lastName" id="lastName" required>
<p id="lastNameErrorMsg"></p>
</div>
<div class="cart__order__form__question">
<label for="address">Adresse: </label>
<input type="text" name="address" id="address" required>
<p id="addressErrorMsg"></p>
</div>
<div class="cart__order__form__question">
<label for="city">Ville: </label>
<input type="text" name="city" id="city" required>
<p id="cityErrorMsg"></p>
</div>
<div class="cart__order__form__question">
<label for="email">Email: </label>
<input type="email" name="email" id="email" required>
<p id="emailErrorMsg"></p>
</div>
<div class="cart__order__form__submit">
<input type="submit" value="Commander !" id="order">
</div>
</form>
我正在使用 API,因此 HTML 不起作用,它只是為了向您展示 get 方法用于恢復 url 中的資料,然后將其發送到后端以獲取 orderId
uj5u.com熱心網友回復:
由于我的網站和網路視窗打開了一個間隙,給我一種請求被延遲的錯覺,我只是關閉了網路視窗,我們可以在其中檢查請求的狀態并且它可以作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/448376.html
標籤:javascript 形式 网址 承诺 得到
