我目前正在通过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秒自动提交一次?(自动保存)
发布于 2011-10-04 17:01:23
请尝试此代码
<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>/新答案
<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>发布于 2011-10-04 16:52:06
考虑使用只需调用一次的setInterval,而不是必须反复设置的setTimeout。
发布于 2011-10-04 16:47:34
一种可能的解决方案是将$('#add_form')的内容放在一个单独的函数中,比如submt(),然后在setTimeout上调用submit,或者如果单击了$('#submit_btn')。
https://stackoverflow.com/questions/7645254
复制相似问题