Jquery中文本框无法获得焦点。请大神帮忙看看

qq_29161845 2015-06-19 04:41:49
$(function() {
//获取class为caname的元素
$(".caname").click(function() {
var td = $(this);
var txt = td.text();
var input = $("<input type='text'value='" + txt + "'/>");
td.html(input);
//获取焦点
input.focus();
//文本框失去焦点后提交内容,重新变为文本
input.blur(function() {
var newtxt = $(this).val();
//判断文本有没有修改
if (newtxt != txt) {
td.html(newtxt);
}else
td.html(txt);
});
});
});

现在有个问题,就是点击文字变成文本框之后。如果点击文本框,会清空所有内容。而且失去焦点无法输入东西。无论怎么点击都是获得焦点马上失去焦点。这是什么原因。
...全文
260 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_29161845 2015-06-19
  • 打赏
  • 举报
回复
引用 4 楼 luhuiming741cs 的回复:
$(".caname") click被触发了,那blur事件也会被触发
还有个小问题请教你。var input = $("<input type='text'value='" + txt + "'/>"); 为什么这里面我加上<b></b>就会出现问题。 我html里面是有这个的
天际的海浪 2015-06-19
  • 打赏
  • 举报
回复
$(function() { //获取class为caname的元素 $(".caname").click(function() { var td = $(this); //如果已经变成文本框之后。td点击事件就不能再触发了 if (td.find("input").length>0) return; var txt = td.text(); var input = $("<input type='text'value='" + txt + "'/>"); td.html(input); //获取焦点 input.focus(); //文本框失去焦点后提交内容,重新变为文本 input.blur(function() { var newtxt = $(this).val(); //判断文本有没有修改 if (newtxt != txt) { td.html(newtxt); }else td.html(txt); }); }); });
luhuiming741cs 2015-06-19
  • 打赏
  • 举报
回复
$(".caname") click被触发了,那blur事件也会被触发
luhuiming741cs 2015-06-19
  • 打赏
  • 举报
回复
你 $("<input type='text'value='" + txt + "'/>"); 包含在$(".caname")里面 那你点击input是不是也算是点击了$(".caname"),这不冒泡了吗
qq_29161845 2015-06-19
  • 打赏
  • 举报
回复
引用 1 楼 luhuiming741cs 的回复:
你时间冒泡了啊,focus这里改成下面的 input.focus().click(function (e) { e.stopPropagation(); });
我是新手,这里好像没有事件冒泡啊,这是我html <tr> <td><b>1</b></td> <td class="caname"><b>哈哈</b></td> <td><b>删除</b></td> </tr> <tr> <td><b>2</b></td> <td class="caname"><b>哈哈</b></td> <td><b>删除</b></td> </tr>
luhuiming741cs 2015-06-19
  • 打赏
  • 举报
回复
你时间冒泡了啊,focus这里改成下面的 input.focus().click(function (e) { e.stopPropagation(); });

87,972

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧