在经典的ASP页面中,我有一个form
,单击“提交”以保存我在数据库中选择的位置,并单击另一个按钮删除所选的位置。实际上是两种不同的操作形式,在其相关的.js文件中,我具有“删除”按钮单击处理程序功能。
问题是,一旦我单击删除按钮,就会出现javascript的简单“是/否confirm
”消息框,但它不会等待用户单击“是”或“否”,并且总是返回“ undefined”(未定义),显示“ no”在控制台中。
我使用preventDefault()
来使确认消息框等待单击,然后消失,但这不能解决我的问题。我可以错过什么吗?
<form action="/placeIn" method="post" name="place" class="placeForm">
<!-- form -->
<div class="center">
<button class="btn btn-default" id="placeDelete">Delete</button>
<input type="submit" id="submittoplace" name="submitplacement" value="Next" />
</div>
</form>
jQuery(document).ready(function(e) {
$('#placeDelete').click(function(e) {
var ids = $(this).closest('form').find('input[name$="placeID"]:checked').map(function() {
return this.value;
}).get().join(',');
if (confirm("Delete?")) {
console.log("yes");
$.get('/pages/ACT.asp', {
act: 'placesDEL',
id: ids,
r: Math.floor(Math.random() * 10000)
}, function(data) {
if (data != 'OK')
alert(data);
else
location.href = '/place';
});
} else
console.log("no");
e.preventDefault();
});
});
答案 0 :(得分:0)
解决了! 我只需要让函数内部像这样确认:
confirm('Delete?',function(){
console.log("confirmed");
$.get('/pages/ACT.asp',{ act:'placesDEL', id: ids, r: Math.floor(Math.random()*10000)}, function(data){
if (data!='OK')alert(data);else location.href='/checkout';
});
});
因此有效。我认为在它不想真正触发确认事件之前,因此我按“ Yes”将确认放置在“内部”以触发确认事件。