如何处理jQuery中锚的文本值更改为“”的情况?

这是代码: Jsfiddle

  1. 我有一个表单,其中可以通过链接上的dblclicking编辑文本值,或者在div内部单击a
  2. 在Onblur中,输入框中显示在1.中的条件中的值被分配给a的文本值。

问题:当您将输入留空并使其模糊时,它会将a的文本设置为"" 。 此时,它周围的div崩溃,用户无法访问。

我怎样才能防止这种崩溃?

只要这样做,你的问题就会解决。

在模糊时,只需检查值长度为零,然后显示输入字段,否则显示超链接。

 $('#url0, #url1').each( function(index, element){ $(element).blur(function(){ if ($(this).val().length == 0) $(this).show(); else $(this).hide().prev().show().find('a').html(this.value); }); } ); 

参考这个现场演示

这个伙伴怎么样?

http://jsfiddle.net/jaspermogg/EdtC2/4/

 $('#url0, #url1').each( function(index, element){ $(element).blur(function(){ this.value == "" ? $(this).hide().prev().show().find('a').html("[insert text here]") : $(this).hide().prev().show().find('a').html(this.value); }) } ); 

如果输入框为空,则将a设置为'[在此处插入文本]’。 或者你想要一个有效隐形的情况? 如果是这种情况,您可以随时更改文本颜色以匹配背景,例如?

根本不是一个bug。 你a标签是空的,它会崩溃。

看这个演示看。 你需要在它上面设置一些css才能使它不崩溃。 例如,边框使其按预期工作。 添加填充或边距也会起作用。 使其显示内联块也可以修复它,而不需要任何额外的边框,填充或边距。

 .a0 a { display: inline-block; }​ 

试试这个 。

我只是添加了边框,默认宽度和高度,以便即使在删除输入后div也可见/可点击。 你可能不需要这样做。