Jeditable在我点击编辑某些文本时,在文本区域的实际文本周围插入额外的空格。我如何修剪或实际解决这个问题?Jeditable在文本区域的文本周围插入额外的空格
回答
你实际上可以传递一个函数来修剪你要编辑的字符串。在您的设置中使用此设置:
data : function(string) {return $.trim(string)},
submit: "Save"
嗯,这很奇怪。 Jeditable没有遇到这个问题。
哦,jQuery有一个微调功能:
$.trim(" hello, how are you? ");
找到了原因。它是疯了!
就地编辑将插入空间周围的文字,如果你的HTML像下面
<div id="inplace_edit_this">
This is some text that will be edited in-place.
</div>
,它会周围文本中没有插入空间,如果你的HTML看起来像这样
<div id="inplace_edit_this">This is some text that will be edited in-place.</div>
我想知道是什么原因造成的这可能是因为浏览器和Javascript解释HTML的方式不同。
这可能是一个旧消息,但我面临着类似的问题:我不知道为什么,但保存编辑后的文本输入后,下次点击它时,11个空格(每次)都是插入可编辑文本之前。
经过大量的试验和错误,我终于通过编辑线〜239在jeditable.js文件解决了这个问题:
content.apply(form, [input_content, settings, self]);
,取而代之的是:
content.apply(form, [$.trim(input_content), settings, self]);
(每Baloneysammitch的建议)
请注意,我几乎不知道我在做什么,但这似乎工作!也许有人比我更技能可以解释那些额外的11个空间可能来自哪里...
这是一段时间以来,任何人回答这个职位,但我遇到了同样的问题,并认为我会添加我的两个美分值。这个问题只发生在Firefox和safari中。 IE和Chrome似乎没有这个问题。
我尝试了Symmitchry在第239行的$.trim()
的建议,但这对我无效。所以我做了一些回溯和想通了,这个问题首先出现的围绕线176线:
self.revert = $(self).html();
由于这是一个jQuery的电话,这让我不知道是否有与jQuery的是一个问题与上述浏览器进行交互。不知道...
我发现通过添加一个$.trim()
在这一点上,事情工作正如我所料。
我确实发现,由于Chirantan的做法,html的布局如果空间在那里或不在,会产生差异。
我在我的应用程序中用JEditable 1.7.1修复了这个问题。该解决方案实际上与Symmitchry的解决方案相同。
从行204开始,有一个代码块决定了JEditable应该如何加载其数据。
/* set input content via POST, GET, given data or existing value */
var input_content;
if (settings.loadurl) {
...
} else if (settings.data) {
...
} else {
...
}
content.apply(form, [input_content, settings, self]);
加入jQuery的修剪功能(在我的版本排239)的最后一行之前),所以您将获得:
/* set input content via POST, GET, given data or existing value */
var input_content;
if (settings.loadurl) {
...
} else if (settings.data) {
...
} else {
...
}
try {
input_content = input_content.trim();
}
catch(e) {
// DO NOTHING
}
content.apply(form, [input_content, settings, self]);
我之所以把它放在一个try-catch是因为当你使用带有textarea的JEditable或输入文本input_content基本上是一个字符串。当你使用一个select时,input_content是一个对象,并且不会很好地被修剪。
这样做可能更美观,而不是使用try-catch,但它可以完成任务。
如果格式设置为空格分配,则会发生这种情况。 jEditable尊重它,并且不会修改你的内容。例如,在VS IDE中,自动格式会产生巨大的空白,其中渲染HTML是很好的。
如果使用jQuery的调用jEditable如果你想OT确保前刚刚修剪DOM是没有空白的任何地方
$('#BatchTable tbody td').each(function() {
$(this).html($.trim($(this).html()));
});
oTable = $('#BatchTable').dataTable({
"bJQueryUI": true
});
在我的情况的解决方法是删除390线的</input>
文件 jQuery的。 jeditable.js。 前行:var input = $('<input type="hidden"></input>');
热线,工作对我来说:var input = $('<input type="hidden">');
- 1. 插入文本到文本区域
- 2. 插入文本在文本区域在插入位置
- 3. 插入文本区域
- 4. 能够从文本区域插入文本到表格
- 5. javascript在文本区域的特定位置插入文本
- 6. jquery的插入文本到文本区域
- 7. 插入文本到文本区域的链接
- 8. 在jQuery中使用.load()插入文本到文本区域
- 9. 在文本框中的文本前插入空格
- 10. 删除Listbox周围的额外空间
- 11. 上传并插入文本区域
- 12. 我无法插入文本区域值
- 13. 在xcode中的选定文本周围插入双引号
- 14. 文本输入与文本区域
- 15. 输入文本/文本区域尺寸
- 16. 如何通过C#将文本插入文本区域与Forms.WebBrowser
- 17. 如何删除td元素中的单元格内容中的文本周围的额外空间?
- 18. 清空IE中的文本区域
- 19. 插入周围人物的跨度和类原始文本
- 20. 文本区域中的示例文本
- 21. 提取锚文本周围的文字
- 22. Moodle Turnitin:添加插入额外文本的功能
- 23. 为什么我的表格区域上方有额外的空白区域?
- 24. HTML文本区域中的XSS注入
- 25. 触发文本区域中的输入
- 26. 如何让我的文本区域自动格式化文本
- 27. 如何在文本区的当前插入位置插入文本
- 28. JavaFX-8使文本插入符在只读文本区域中可见
- 29. 文本垂直线周围
- 30. 文本没有出现在滚动窗格或文本区域
太棒了。这非常有用。 – Jake 2012-12-21 19:31:00
说真的。我将它添加到了我的基础对象中,使得我所有的可用对象都可用,现在我可以根据需要设置页面的格式。真的很有用... – Jake 2012-12-21 19:34:05
这真是一个很好的答案!谢谢。 – 2013-02-08 13:40:40