Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery编辑带有用户输入的段落_Jquery_Html - Fatal编程技术网

使用jquery编辑带有用户输入的段落

使用jquery编辑带有用户输入的段落,jquery,html,Jquery,Html,这是一个类似CRUD系统的编辑功能,但其目的是简化,当用户通过单击或双击某个项目时,它将变成一个字段,直接更新数据 演示 问题是我不能在字段中键入任何内容,我想知道为什么 Html <li style="list-style:none">click here to edit</li> 单击此处进行编辑 jquery $(document).ready(function(){ $('li').click(function(){ $(this).html("<

这是一个类似CRUD系统的编辑功能,但其目的是简化,当用户通过单击或双击某个项目时,它将变成一个字段,直接更新数据

演示

问题是我不能在字段中键入任何内容,我想知道为什么

Html

<li style="list-style:none">click here to edit</li>
单击此处进行编辑 jquery

$(document).ready(function(){

$('li').click(function(){
   $(this).html("<input id='input' type='text'>");
});

$('#input').blur(function(){
  var newVal = ('#input').val();
      $('li').text('newVal');   
   });
});
$(文档).ready(函数(){
$('li')。单击(函数(){
$(this.html(“”);
});
$('#input').blur(函数(){
var newVal=(“#input”).val();
$('li').text('newVal');
});
});

我的朋友,你每次点击都会添加一个新的输入,所以你需要快速输入(只是开玩笑而已)。但这就是问题所在。松开li click功能。

我的朋友,你每次点击都会添加一个新的输入,所以你需要快速输入(只是开玩笑)。但这就是问题所在。松开li单击功能。

这是因为单击文本字段也是单击“li”。因此,当您单击现有的文本字段时,它会添加一个新的文本字段

这是工作小提琴:

以及守则:

$(document).ready(function(){
    $('li').click(function(){
       input = $("<input id='input' type='text'>").blur(function(){
          $('.editable').removeClass('editable');
          var newVal = $(this).val();
          $('li').text(newVal);   
       });
       if (!$(this).hasClass('editable'))
           $(this).addClass('editable').html(input);
    });
    });
$(文档).ready(函数(){
$('li')。单击(函数(){
输入=$(“”)。模糊(函数(){
$('.editable').removeClass('editable');
var newVal=$(this.val();
$('li').text(newVal);
});
if(!$(this).hasClass('editable'))
$(this).addClass('editable').html(输入);
});
});

我使用.editable类来检测文本字段是否已经打开。

这是因为单击文本字段也是单击“li”。因此,当您单击现有的文本字段时,它会添加一个新的文本字段

这是工作小提琴:

以及守则:

$(document).ready(function(){
    $('li').click(function(){
       input = $("<input id='input' type='text'>").blur(function(){
          $('.editable').removeClass('editable');
          var newVal = $(this).val();
          $('li').text(newVal);   
       });
       if (!$(this).hasClass('editable'))
           $(this).addClass('editable').html(input);
    });
    });
$(文档).ready(函数(){
$('li')。单击(函数(){
输入=$(“”)。模糊(函数(){
$('.editable').removeClass('editable');
var newVal=$(this.val();
$('li').text(newVal);
});
if(!$(this).hasClass('editable'))
$(this).addClass('editable').html(输入);
});
});

我使用.editable类来检测文本字段是否已经打开。

只是一个想法,但是您是否考虑过使用HTML5
contenteditable
功能


显然,它在过时的浏览器中不起作用,但如果您不关心这一点,那么随着应用程序的增长,它将为您节省大量工作。

只是一个想法,但是您是否考虑过使用HTML5
内容可编辑功能



显然,它不会在过时的浏览器中工作,但如果您不关心这一点,那么随着应用程序的增长,它将为您节省大量的工作。

jEditable plugin?这是一个很好的插件来做这样的事情。看看它是否符合你的目的@tonoslfx他几乎可以用了,为什么要用一个插件来膨胀一切,而html5 contenteditable就可以了?这是一个很好的插件来做这样的事情。看看它是否符合你的目的@tonoslfx他几乎可以用了,为什么HTML5ContentEditable可以用,却要用插件来膨胀一切呢?为什么这是个问题?不是为什么这可能是一个问题,而是为什么在@Nurul的例子中它会是一个问题?我的整个项目几乎都在jquery中,有什么类似于HTML5的contenteditable的东西可以在jquery中完成吗?或者自定义逻辑?localstorage是…..本地的。只有编辑它的人才能看到它,我怀疑这是他想要的。此外,只要简单地删除浏览器缓存,它就很容易被丢弃。没错,但同样的
.blur()
功能可以应用于大多数现代浏览器中的任何元素。一个快速的AJAX例程可以将新内容发布到服务器:)为什么这是一个问题?不是为什么这可能是一个问题,而是为什么在@Nurul的例子中它会是一个问题?我的整个项目几乎都在jquery中,有什么类似于HTML5的contenteditable的东西可以在jquery中完成吗?或者自定义逻辑?localstorage是…..本地的。只有编辑它的人才能看到它,我怀疑这是他想要的。此外,只要简单地删除浏览器缓存,它就很容易被丢弃。没错,但同样的
.blur()
功能可以应用于大多数现代浏览器中的任何元素。一个快速的AJAX例程可以将新内容发布到服务器:)请同时添加
input=$(“”)到您的代码。a)输入是一个变量吗?@Stano它被认为是问题的正确答案,对我来说似乎工作正常。它确实可以正常工作。@Nurul是的,输入是一个变量,您需要它来绑定模糊事件,并在以后使用它来设置HTML内容。我只是忘了写‘var’,因为我习惯了咖啡脚本;)@Parrotmaster部分地,它总是创建空的输入元素。但是费迪南德的答案很好,所以当然是+1。请再加上
input=$(“”)到您的代码。a)输入是一个变量吗?@Stano它被认为是问题的正确答案,对我来说似乎工作正常。它确实可以正常工作。@Nurul是的,输入是一个变量,您需要它来绑定模糊事件,并在以后使用它来设置HTML内容。我只是忘了写‘var’,因为我习惯了咖啡脚本;)@Parrotmaster部分地,它总是创建空的输入元素。但是费迪南德的回答很好,所以当然是+1。