我目前正在编辑后端页面,但我遇到了一些问题。
在我删除Action
之前我需要确认,因为您可以看到我到目前为止尝试了这一点,但我的代码完全跳过confirm()
并且只重定向到索引。
请查看下面的控制器代码
delete(req, res, next) {
Action
.findOne(req.param('id'))
.then(({id}) => {
confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan');
if(confirm()=== true) {
Action
.destroy(id)
.then(() => {
FlashService.setFlash(req, 'success', 'Action has been deleted')
res.redirect('/answer/index')
})
.catch(err => res.redirect('/answer/index'))
}
})
.catch(err => res.redirect('/answer/index'))
}
}
我还尝试console.log
查看我的代码在哪里搁浅,但这只会出现此错误:
未处理拒绝ReferenceError:未定义确认
修改
我认为它也许可能有用,也许看到HTML所以你去 你可以看到删除是在提交时调用的,也许我做的极其错误,但它似乎除了前面提到的确认之外还有效
<form action="/action/delete/<%= action.id %>" method="POST">
<button type="submit"
class="btn btn-sm btn-icon btn-pure btn-default on-default"
data-toggle="tooltip"
data-original-title="Verwijder"><i class="icon wb-trash" aria-hidden="true"></i>
</button>
</form>
EDIT 2.0
我解决了这个问题,但仍然没有真正为删除它制作了以下javascript它有点基本但不是问题请看看
<script>
function Delete(){
let c = confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan');
if (c){
console.log("done");
window.location.href = "/action/delete/<%= action.id %>"
}
else{
console.log("failed")
window.location.href = "/answer/show/<%= answer.id %>"
}
}
</script>
但是,当我转到此页面时,它表示&#34;动作未定义&#34;但我很确定它的定义是诚实的。
我真的不知道我做错了什么,任何帮助都会很好
答案 0 :(得分:1)
您无法在服务器端使用客户端confirm
javascript。它不存在。您应该在向服务器发送请求之前调用confirm。
喜欢这样
<button onclick="delete()">Delete</button>
<script>
function delete() {
var confirm = confirm("Do you want to delete?")
if(confirm){
// Call server
}
}
</script>