如何处理jQuery中锚的文本值更改为“”的情况?
这是代码: Jsfiddle
- 我有一个表单,其中可以通过链接上的dblclicking编辑文本值,或者在
div
内部单击a
。 - 在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也可见/可点击。 你可能不需要这样做。