【问题标题】:How to include HTML into jEditable placeholder?如何将 HTML 包含到 jEditable 占位符中?
【发布时间】:2014-06-19 09:26:27
【问题描述】:

我想要具有独特风格的 jEditable 占位符,所以我尝试将简单的 span 包含到 placeholder 属性中,它看起来与我预期的一样,但是,单击时它的工作方式类似于默认值,但会显示占位符的内容作为输入框中的原始 HTML 代码:

$(function() {
     $(".testjedit").each(function() {
            var old_value = $(this).attr( 'data-default' );
            var ph = $(this).attr( 'data-placeholder' );

            $(this).editable("http://localhost/index.php/welcome/update_record", { 
              "callback": function( value, settings ) {                              
                $( this ).attr('data-default', value );
              },
              "placeholder": "<span class='ph'>" + ph + "</span>",
              "submitdata": { 
                "oldvalue": old_value,
                "check": 1
              }
            }); 
     });
});

我把它们放在jsfiddle 中,所以你可以用它来看看有什么问题。尝试点击“评论”。

【问题讨论】:

标签: javascript jquery html jeditable


【解决方案1】:

jEditable 中似乎有一个小错误。您可以使用 HTML 作为占位符,但不要在属性中使用单引号。

//  "placeholder": "<span class='ph'>" + ph + "</span>",
    "placeholder": '<span class="ph">' + ph + '</span>',

我已经更新了你的 Fiddle:http://jsfiddle.net/8b8nH/10/

据我所知,此时匹配失败:

/* Remove placeholder text, replace is here because of IE. */
if ($(this).html().toLowerCase().replace(/(;|"|\/)/g, '') == 
    settings.placeholder.toLowerCase().replace(/(;|"|\/)/g, '')) {
       $(this).html('');
    }

【讨论】:

  • 再次,您将不得不解释我错过了什么,但是@Quasimodo'sclone,您的 Fiddle 在编辑 jEditable 时没有显示任何 &lt;span&gt; 标签。事实上,您的 jEditables 不可编辑!
  • 在原始小提琴中,点击“评论”后会出现跨度标签。我的答案中的小提琴链接指的是更正的版本。由于 AJAX 请求的相同来源策略,所有已编辑的数据都将在 Fiddle 上重置,因为服务器端脚本未托管在 Fiddle 上。如果您无法在 OP 的原始链接中重现错误,那么您的浏览器可能不会受到影响。
  • Quasimodo'sclone 和 Dave A:抱歉不清楚。就像@CupawnTae 指出的那样,问题很简单。谢谢你们!如果CupawnTae几天后没有回复,我会接受这个。
  • 也许你是通灵者。 +1
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 2013-09-13
  • 2016-01-17
相关资源
最近更新 更多