双击修改

本文介绍了一种使用PHP和jQuery实现表格中单元格双击编辑功能的方法。通过简单的HTML结构结合JavaScript事件监听,实现了表格数据的双击编辑及回写功能。文章详细展示了如何设置单元格内的输入框,并在双击时启用编辑状态,在失去焦点时验证并保存更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>双击修改</title>
	<script src="jq.js"></script>
</head>
<body>
<?php 
$con = array(
	array("id"=>1,"姓名"=>"张三","性别"=>"女"),
	array("id"=>2,"姓名"=>"李四","性别"=>"男"),
	array("id"=>3,"姓名"=>"王五","性别"=>"男"));
 // print_r($con);die;
?>
	<table align="center" border="1">
	<?php foreach ($con as $key => $v): ?>
		<tr id="<?= $v['id'];?>">
			<td signs="user_name" style="width:100px">
				<input style="border:0; text-align: center; width:50px;  background: #fff;" 
				type="text" disabled="disabled" readonly="readonly" value="<?= $v['姓名'];?>" > 
			</td>
			<td signs="user_sex" style="width:100px">
				<input style="border:0; text-align: center; width:50px; background: #fff;" 
				type="text" disabled="disabled" readonly="readonly" value="<?= $v['性别'];?>" >	
			</td>
		</tr>
	<?php endforeach ?>
	</table>
</body>
</html>	

<script>
	//双击触发事件
	$("tbody>tr>td").dblclick(function(){
		//获取到 当前 input 下的元素(原值)  
		window.olds = $(this).children('input').val();
		if(olds==undefined)
		{
			return false;
		}
		var signs = $(this).attr('signs'); //获取属性值(这些值方便php后台的操作)
		var user_id = $(this).parent().attr("id");  //接受当前点击的ID(tr里的id)
		//双击之后可以修改
		$(this).find('input').attr("disabled",false);
		$(this).find('input').attr("readonly",false);
		$(this).find('input').css("border",'1px solid deepskyblue');
		$(this).find('input').attr('id', signs + "_" + user_id);	//方便下面失去焦点事件 找ID(没有这个无法定位到tr里面的id属性)
		//循环这些值从而判断是修改数据的类型,对一些特殊类型的数据进行特殊处理
		switch(signs){
			case 'user_name':
			 $("#" + signs + "_" + user_id).focus().on("blur",function(){  
                 var content = $(this).val();
			 	if(content!=olds)   //与原值不同则传到后台
			 	{
			 		// alert(user_id);alert(signs);alert(content);
			 		/*
			 		通过getJSON将数据传输到后台
			 		USER_ID
			 		SIGNS
			 		CONTENT
			 		 */
			 	}
			 	$(this).attr('disabled', 'disabled');
                $(this).attr('readonly', 'readonly');
                $(this).css('border', '0');
                $(this).css('background', '#fff');
                $(this).css('text-align', 'center');
			 })
			break;
			case 'user_sex':
			 $("#" + signs + "_" + user_id).focus().on("blur",function(){
                 var content = $(this).val();
			 	if(content!=olds)
			 	{
			 		// alert(user_id);
			 	}
			 	$(this).attr('disabled', 'disabled');
                $(this).attr('readonly', 'readonly');
                $(this).css('border', '0');
                $(this).css('background', '#fff');
                $(this).css('text-align', 'center');
			 })


		}
	})
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值