我有这个代码提交到数据库而没有刷新,但问题是当它发送时,变量仍然保留在文本字段中
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script>
$(document).ready(function(){
$("form").on('submit',function(event){
event.preventDefault();
data = $(this).serialize();
$.ajax({
type: "POST",
url: "insert.asp",
data: data
}).done(function( msg ) {
});
});
});
</script>
我在想是否有一种方法,变量会在发送到数据库后从文本文件中消失,甚至会在保存数据时自动消失。
答案 0 :(得分:1)
您可以这样做:
$('input[type=text]').val(''); // select all text inputs and assign value of ''
您的代码:
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script>
$(document).ready(function(){
$("form").on('submit',function(event){
event.preventDefault();
data = $(this).serialize();
$.ajax({
type: "POST",
url: "insert.asp",
data: data
}).done(function( msg ) {
$('input[type=text]').val('');
});
});
});
</script>
答案 1 :(得分:0)
我认为您要做的是在ajax请求之后的回调中添加您想要的行为。目前您正在使用&#34;已完成&#34;作为回调,在我的理解中,只要ajax调用完成,无论成功与否,都会执行回调。如果这是你想要的,在这个回调中添加文本字段清除和警报代码,否则回调就像&#34;成功&#34;可能更合适。
我并不完全确定你的意思是警告&#34; ...如果您指的是警报框,即:警报(),我不会&#39建议吧。这将暂停您的脚本,直到用户单击该按钮,因此一旦显示警报就无法终止该警报。警报框也不是最好的东西呈现给用户imo。另一种方法是在页面的某处定义div,在success / done回调中使用jquery将成功消息添加到它,然后设置一个超时以使其淡出(包含在我下面的示例中)。如果你正在寻找更精细的东西,你可以在他们的小工具中找到一些警告框的替代品。
也许这段代码可以为您提供一些入门建议:
<script>
$(document).ready(function(){
$("form").on('submit',function(event){
event.preventDefault();
data = $(this).serialize();
$.ajax({
type: "POST",
url: "insert.asp",
data: data
}).success(function() {
$("#feedback").append("<div class='messages' style='border:1px green solid; padding:2px; margin:5px;'>successfully submitted!</div>");
setTimeout(function() {
$(".messages").fadeOut(function(){
$(".messages").remove();
});
}, 1000);
$("input[type=text]").val("");
});
});
});
</script>
哪里有一个id =&#34;反馈&#34;您要在哪里显示消息。