我正在構建一個 Vuejs 和 Laravel 應用程式,并有一個名為“問題”的資料串列,我試圖遍歷它并查看問題中的答案值是否不等于 null。如果即使單個問題的答案值為空,我也想阻止表單提交并使用警報告訴用戶填寫所有問題。
我遇到的問題是,即使尚未填寫所有答案,我仍然通過我的函式在控制臺中記錄了“成功”。
誰能指出我哪里出錯了?
這是我的資料串列:

如您所見,一些答案欄位為空,而如果填寫了這些欄位,則那里有資料。
這是我系結到表單提交按鈕的提交功能:
methods: {
submitPressed(e){
console.log(this.questions);
this.questions.forEach(question => {
question.questions.every(q => {
if(q.answer !== null){
console.log('success');
// this.submit();
} else {
e.preventDefault();
console.log('more to fill out');
}
})
})}
},
提前致謝!
uj5u.com熱心網友回復:
你應該在里面回傳一個真值every。
methods: {
submitPressed(e){
this.questions.forEach(question => {
const check = question.questions.every(q => {
if (q.answer !== null) {
return true;
} else {
return false;
}
});
if (check) {
// every answer has been filled
} else {
// some answers are missing
}
})
}
}
uj5u.com熱心網友回復:
你可以用幾種不同的方式來做到這一點。一種是some()在陣列上使用。
methods: {
submitPressed(e) {
console.log(this.questions);
if (this.questions.some(q => !q.answer)) {
e.preventDefault();
console.log('more to fill out');
} else {
console.log('success');
// this.submit();
}
}
},
更多()的詳細資訊可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some找到
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363681.html
標籤:javascript 拉拉维尔 形式 Vue.js 循环
下一篇:如何將用戶輸入欄位添加到URL
