jQuery字段选择replacesselection不't为我工作
jQuery fieldselection replaceSelection doesn't works for me
嗨,这是一个简单的jquery字段选择插件。
/*
* jQuery plugin: fieldSelection - v0.1.1 - last change: 2006-12-16
* (c) 2006 Alex Brem <alex@0xab.cd> - http://blog.0xab.cd
*/
(function() {
var fieldSelection = {
getSelection: function() {
var e = (this.jquery) ? this[0] : this;
return (
/* mozilla / dom 3.0 */
('selectionStart' in e && function() {
var l = e.selectionEnd - e.selectionStart;
return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };
}) ||
/* exploder */
(document.selection && function() {
e.focus();
var r = document.selection.createRange();
if (r === null) {
return { start: 0, end: e.value.length, length: 0 }
}
var re = e.createTextRange();
var rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
return { start: rc.text.length, end: rc.text.length + r.text.length, length: r.text.length, text: r.text };
}) ||
/* browser not supported */
function() { return null; }
)();
},
replaceSelection: function() {
var e = (typeof this.id == 'function') ? this.get(0) : this;
var text = arguments[0] || '';
return (
/* mozilla / dom 3.0 */
('selectionStart' in e && function() {
e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);
return this;
}) ||
/* exploder */
(document.selection && function() {
e.focus();
document.selection.createRange().text = text;
return this;
}) ||
/* browser not supported */
function() {
e.value += text;
return jQuery(e);
}
)();
}
};
jQuery.each(fieldSelection, function(i) { jQuery.fn[i] = this; });
})();
我不明白为什么这样做,textarea元素中的选定文本不被替换。
$('.wysiwyg-editor-italic').live('click',function(){
var _selection = $('.wysiwyg textarea').getSelection().text;
var wcode = "";
if(_selection){
$('.wysiwyg textarea').replaceSelection("{italic}"+_selection+"{/italic}");
console.log(_selection);
}
else{
wcode = "{italic} italic {/italic}";
}
var wysiwyg_val = $('.wysiwyg textarea').val();
$('.wysiwyg textarea').val("").val(wysiwyg_val+wcode);
$('.wysiwyg-preview').html(wysiwyg_val);
$('.wysiwyg textarea').focus();
refresh_preview()
});
在控制台中我可以看到_selection
,这是可以的,但之后没有被替换…也许我错过了什么?
不幸的是,这似乎是库中的一个错误。
我也受到这个bug的影响。除了replaceSelection()部分之外,所有内容都可以很好地检测和工作。我最终使用了Rangyinputs。总有一天,当我有空闲时间,我会尝试修复这个错误的字段选择和拉请求。
你能做一个小提琴来显示问题吗?试试新版本的库:https://github.com/nikolasmagno/jquery-fieldselection/
我肯定会成功的
相关文章:
- 输入字段验证的键代码函数在chrome中没有按预期工作
- HTML 符号代码在输入字段中无法正常工作
- 选择字段无需按钮即可工作,但在选择字段中不会更改
- JavaScript for HTML5 必填字段设置为在 Safari 中工作
- 提交时无法正常工作.即使输入字段为空,它仍然会转到表单操作
- 允许用户添加表单输入字段:为什么 append() 只工作一次
- 隐藏输入字段的内联 javascript 无法正常工作
- AngularJS 按整数字段排序无法正常工作
- 在选择 HTML 表单的文本输入字段后无法使日期选取器工作
- AngularJS$valid不在字段上工作
- 一个ng模型在ng个重复字段上工作吗
- 字段验证工作不正常
- 如何获得验证,以正确地工作在我的输入字段
- WooCommerce Checkout字段编辑器(minDate)不工作
- 让ngClick在动态字段上工作
- 将值从java脚本传递到隐藏字段不工作
- JQuery检查所有&启用不一起工作的字段
- 访问输入字段不工作
- 为什么使用ng-model两次输入字段工作?
- 当光标聚焦在一个字段时,Phonegap返回按钮不工作