jquery - 多个textarea在php中使用相同的jquery代码
问题描述
我有一个代码,它有多个 textarea 需要在数据更新时将值自动保存到数据库中,我使用类而不是 id,但它似乎不起作用,我不知道哪一部分是错误的。有人可以帮忙吗?
代码如下,
<?php foreach($queryRecords as $res) :?>
<td width="160">
<div class="form-group">
<textarea name="date[]" id="" rows="1" class="form-control date"><?php echo $res['date'];?></textarea>
</div></td>
<td width="160">
<div class="form-group">
<textarea name="action[]" id="" rows="1" class="form-control action"><?php echo $res['action'];?></textarea>
</div></td>
<div class="form-group">
<input type="hidden" name="id[]" id="" class="form-control id" value="<?php echo $res['id'];?>" />
<div class="autoSave_quo"></div>
</div>
</td>
</tr>
<?php endforeach;?>
<script>
$(document).ready(function(){
var timer_quo;
var timeout_quo = 1000;
$('.date, .action').change(function(){
if(timer_quo) {
clearTimeout(timer_quo);
}
timer_quo = setTimeout(autoSave_quo, timeout_quo);
});
});
function autoSave_quo(){
var date = $(this).parent().find('.date').val();
var action = $(this).parent().find('.action').val();
var gp_name = $(this).parent().find('.gp_name').val();
var id = $(this).parent().find('.id').val();
if(date != '' && gp_name != '')
{
$.ajax({
url:"lotus_cover_ref.php",
method:"POST",
data:{date:date, action:action, gp_name:gp_name, id:id},
dataType:"text",
success:function(data)
{
if(data != '')
{
$('.gp_name').val(data);
$('.id').val(data);
}
$('.autoSave_quo').text(location.reload());
}
});
}
}
</script>
解决方案
在您function autoSave_quo
正在使用$(this)
但您的代码无法找到已进行更改的当前元素,只需放入$(this)
一些变量,然后将其添加到函数参数 .ie 中:使用虚拟数据:
$(document).ready(function() {
var timer_quo;
var timeout_quo = 1000;
$('.date , .action').change(function() {
if (timer_quo) {
clearTimeout(timer_quo);
}
//putting current element in variable current
var current = $(this)
//passsing it in function as parameter
timer_quo = setTimeout(autoSave_quo(current), timeout_quo);
});
});
function autoSave_quo(current) {
//using current->div->td->tr->.date to find selected value
var date = current.parent().parent().parent().find('.date').val();
console.log(date);
var action = current.parent().parent().parent().find('.action').val();
console.log(action);
var gp_name = current.parent().parent().parent().find('.gp_name').val();
var id = current.parent().parent().parent().find('.id').val();
console.log(id);
if (date != '' && gp_name != '') {
$.ajax({
url: "lotus_cover_ref.php",
method: "POST",
data: {
date: date,
action: action,
gp_name: gp_name,
id: id
},
dataType: "text",
success: function(data) {
if (data != '') {
$('.gp_name').val(data);
$('.id').val(data);
}
$('.autoSave_quo').text(location.reload());
}
});
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<table>
<tr>
<td width="160">
<div class="form-group">
<textarea name="date[]" id="" rows="1" class="form-control date"><?php echo $res['date'];?></textarea>
</div>
</td>
<td width="160">
<div class="form-group">
<textarea name="action[]" id="" rows="1" class="form-control action"><?php echo $res['action'];?></textarea>
</div>
</td>
<td>
<div class="form-group">
<input type="hidden" name="id[]" id="" class="form-control id" value="<?php echo $res['id'];?>" />
<div class="autoSave_quo"></div>
</div>
</td>
</tr>
<tr>
<td width="160">
<div class="form-group">
<textarea name="date[]" id="" rows="1" class="form-control date"><?php echo $res['date']1;?></textarea>
</div>
</td>
<td width="160">
<div class="form-group">
<textarea name="action[]" id="" rows="1" class="form-control action"><?php echo $res['action']1;?></textarea>
</div>
</td>
<td>
<div class="form-group">
<input type="hidden" name="id[]" id="" class="form-control id" value="<?php echo $res['id']1;?>" />
<div class="autoSave_quo"></div>
</div>
</td>
</tr>
</table>
推荐阅读
- java - Spring Integration Tcp连接单用VS setSoKeepAlive
- javascript - Typescript 未正确编译为 commonjs/es2015
- python - 为 matplotlib 图自动创建新图形
- python - 调用 super().__init__ 时,如何判断超级初始化是否是 python3 中的 object.__init__?
- python - Python初学者问题:从字典中删除重复的应用程序 - 错误:列表索引超出范围
- daml - Daml Map 函数中 M.empty 的目的是什么?
- ruby-on-rails - 查询索引页面以过滤表中显示的结果 - RoR
- php - 我的登录功能只是重新加载我当前的页面而不是让我登录?Laravel 7与关闭冲突?
- javascript - 如何监控 JavaScript 中的变量变化
- mongodb - 如何在 mongodb 中加入 2 个以上的集合?