我目前正在通过Ajax将数据添加到db表中,如下所示:当用户按下id为#submit_btn的按钮时,它会触发以下函数并发布数据。函数代码看起来像这样。
$("#submit_btn").click(function () {
$("#add_form").submit(function (e) {
e.preventDefault();
dataString = $("#add_form").serialize();
$.ajax({
type: "POST",
url: "processor/dbadd.php",
data: dataString,
dataType: "json",
success: function (result, status, xResponse) {
//do something if ajax call is success
var message = result.msg;
var err = result.err;
if (message != null) {
$.notifyBar({ cls: "success", html: message });
}
if (err != null) {
$.notifyBar({ cls: "error", html:err});
}
},
error: function (e) {
//ajax call failed
alert(e);
}
});
});
无论如何都要修改此代码以便每2-3秒自动提交一次? (自动保存)
答案 0 :(得分:4)
请尝试此代码
<script>
$(document).ready(function(){
var int = window.setInterval("call();",2000);
$("#add_form").submit(function (e) {
// PLACE YOUR SUBMIT CODE HERE
});
$("#submit_btn").click(function () {
$('#add_form').submit();
});
});
function call(){
$('#add_form').submit();
}
</script>
/// NEW ANSWER
<script>
var int;
$(document).ready(function(){
$("#add_form").submit(function (e) {
// PLACE YOUR SUBMIT CODE HERE
});
$("#submit_btn").click(function () {
int = window.clearInterval(int)
int = window.setInterval("call();",3000);
});
});
function call(){
$('#add_form').submit();
}
</script>
///第三回答
<script>
$(document).ready(function(){
$("#add_form").submit(function (e) {
// PLACE YOUR SUBMIT CODE HERE
});
$("#submit_btn").click(function () {
int = window.setInterval("call();",3000);
$(this).attr({'disabled':'disabled'});
$(':input#autosave').attr({'disabled':'disabled'});
});
$(':input#autosave').click(function(){
if($(this).is(':checked')){
$(':input#submit_btn').attr({'value':'Save & exit'});
}
else{
$(':input#submit_btn').attr({'value':'Save'});
}
});
});
function call(){
$('#add_form').submit();
}
</script>
</head>
<body>
<form id="add_form" action="" method="post">
<input type="checkbox" id="autosave" value="1"/>
<input id="submit_btn" type="submit" name="save" value="Save"/>
</form>
</body>
答案 1 :(得分:2)
要考虑使用setTimeout
而不是setInterval
,而不是{{1}},只需要调用一次。
答案 2 :(得分:0)
一种可能的解决方案是将$('#add_form')
的内容放在单独的函数中,例如submt()
,并在setTimeout
上调用提交,或者点击$('#submit_btn')
。