我想从网站复制/粘贴html并将它们存储在mysql数据库中.要做到这一点,我已经检查了CKEditor,它允许我粘贴HTML,甚至word文档,它为它生成HTML代码.因为我想要的是"生成"粘贴的数据为html,而不是像CKEditor那样使用完整的所见即所得编辑器,我想编写一些代码(可能带有jquery)来将粘贴的数据转换为具有html标签和格式.
要实现此功能,这些在线编辑器会做什么?他们如何将剪贴板数据转换为HTML代码?为什么我在这里将html格式的文本或div或按钮粘贴到此textarea以及wysiwyg编辑器上的图像和正确大小的div时,只获得文本?
编辑是否访问剪贴板数据并对其进行操作?剪贴板是否以有组织的方式保存格式数据,允许"CKEditor"或其他人操纵它?
这可以用jQuery完成吗?或者我们还需要服务器端代码吗?
如果你能对这个问题有所了解,我将不胜感激.我只想知道方法,以便我可以为它编写适当的代码.
我希望在输入(文本)元素上执行粘贴操作时,用空格替换换行符.
例如,如果将以下文本粘贴到Google搜索中:
foo
bar
Run Code Online (Sandbox Code Playgroud)
它粘贴为:
foo bar
Run Code Online (Sandbox Code Playgroud)
默认情况下,文本输入元素将在第一个换行符处停止,如下所示:
foo
Run Code Online (Sandbox Code Playgroud)
我能够使用以下代码找到带有textarea元素的解决方案:
$("#textarea_element").bind('paste', function(e) {
var el = $(this);
setTimeout(function() {
$(el).val($(el).val().replace(/(\r\n|\n|\r)/gm," "));
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
但我想在输入元素上使用此功能.有任何想法吗?
我需要能够允许用户粘贴到可编辑的div中(通过用户选择的内容:右键单击并粘贴,快捷键等),但是我想放弃格式设置,而只采用纯文本格式。
我不能使用textarea,因为div如果允许用户启动的事件应用,则允许基本格式(粗体和斜体)。
onbeforepaste事件看起来很有希望,但是根据quirksmode,支持如此有限,以致无法使用。
蒂亚的任何建议
我有一个textarea,粘贴到我想要的textarea
可以用Javascript完成吗?
在这个jQuery中,我能够绑定paste事件以验证表单字段,但我在函数内部的方法显然是错误的.我根本没有得到警报.
我只想修剪输入的文本并将其作为表单输入文本字段的值返回#adsense_client_id.
$("#adsense_client_id").bind('paste', function(e) {
$(this).attr('value') = $.trim(this).val();
alert($(this).val()); //why no alert?
});
Run Code Online (Sandbox Code Playgroud) 我有两个字段,一个是emailid,另一个是我的表单中的密码.我想检测当用户重新输入电子邮件和密码时,他不应该复制上面的内容.他必须再次手动编写.就像谷歌表格一样
我在我的网站上有一个使用6个输入字段的表单.网站访问者只需在这6个框中输入一个6位数的代码.问题是他们将得到6位数的代码,并且理想的是允许他们简单地将我们发送到他们的6位数代码复制到这些输入字段中,只需将粘贴放入第一个输入字段并使剩下的5位数字去进入剩下的5个输入字段.它只比让每个数字手动输入每个输入字段容易得多.
这是我们目前使用的代码,但可以轻松更改以完成上述内容:
<input type="text" maxlength="1" class="def-txt-input" name="chars[1]">
<input type="text" maxlength="1" class="def-txt-input" name="chars[2]">
<input type="text" maxlength="1" class="def-txt-input" name="chars[3]">
<input type="text" maxlength="1" class="def-txt-input" name="chars[4]">
<input type="text" maxlength="1" class="def-txt-input" name="chars[5]">
<input type="text" maxlength="1" class="def-txt-input" name="chars[6]">
Run Code Online (Sandbox Code Playgroud)
我在这里看到了类似的帖子:在多个文本字段上粘贴序列号
但它没有我想要的解决方案.理想情况下,这可以使用jQuery或纯JavaScript来实现.
如何在Textbox使用时捕获以下键JavaScript?
Ctl + a
Ctl + c
Ctl + v
我有三个Textboxes电话号码.Textbox1最大长度为3,第二个为3,第三个为4.当用户键入三个数字时TextBox1,光标自动移动到TextBox2TextBox2和TextBox3同样的事情.我在keyup事件中处理此功能.现在,我平行使用您的代码.但它也会在keyup事件中发生变化.填写所有TextBox时会发生这种情况.现在假设我在TextBox1中并按下Ctl + A. 这会将用户移动到第三个TextBox(不可接受的情况).这是问题所在.
使用Javascript/jQuery的:
$(document).ready(function () {
$('#txt').bind("paste", function (e) {
var $this = $(this);
$this.val($this.val().replace(/[^\d.]/g, ''));
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<asp:TextBox ID="txt" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
如果值如下
10-10-20.0a
Run Code Online (Sandbox Code Playgroud)
结果必须如下
1010200
Run Code Online (Sandbox Code Playgroud)
我只想允许它将数值粘贴到文本框,否则,禁用它.但是,如果我尝试上面的javascript代码,它就无法正常工作.
我在javascript方面错过了哪里?
可能重复:
jQuery catch paste输入
在jQuery中是否有一个事件处理程序用于将剪贴板中的选择粘贴到输入字段中的事件?
至于我知道没有关键动作,所以我会排除keyup和keydown.点击事件可能会在我单击以激活输入字段时立即响应,但在该事件之后粘贴它们时不会获取内容.
任何输入都非常赞赏.