easyUI在实际使用中遇到这样的问题,textbox不能输入特殊字符,如:, “” : {} []等…所有需要拓展
查看源码:
(function($) {
var _4e0 = 0;
function init(_4e1) {
$(_4e1).addClass("textbox-f").hide();
var span = $("<span class=\"textbox\">"
+ "<input class=\"textbox-text\" autocomplete=\"off\">"
+ "<input type=\"hidden\" class=\"textbox-value\">" + "</span>")
.insertAfter(_4e1);
var name = $(_4e1).attr("name");
if (name) {
span.find("input.textbox-value").attr("name", name);
$(_4e1).removeAttr("name").attr("textboxName", name);
}
return span;
};
function _4e2(_4e3) {
var _4e4 = $.data(_4e3, "textbox");
var opts = _4e4.options;
var tb = _4e4.textbox;
var _4e5 = "_easyui_textbox_input" + (++_4e0);
tb.find(".textbox-text").remove();
if (opts.multiline) {
$("<textarea id=\"" + _4e5 + "\" class=\"textbox-text\" autocomplete=\"off\"></textarea>")
.prependTo(tb);
} else {
$("<input id=\"" + _4e5 + "\" type=\"" + opts.type + "\" class=\"textbox-text\" autocomplete=\"off\">")
.prependTo(tb);
}
$("#" + _4e5).attr("tabindex", $(_4e3).attr("tabindex") || "").css(
"text-align", $(_4e3).css("text-align"));
tb.find(".textbox-addon").remove();
var bb = opts.icons ? $.extend(true, [], opts.icons) : [];
if (opts.iconCls) {
bb.push({ iconCls : opts.iconCls, disabled : true });
}
if (bb.length) {
var bc = $("<span class=\"textbox-addon\"></span>").prependTo(tb);
bc.addClass("textbox-addon-" + opts.iconAlign);
for (var i = 0; i < bb.length; i++) {
bc .append("<a href=\"javascript:void(0)\" class=\"textbox-icon " + bb[i].iconCls + "\" icon-index=\"" + i + "\" tabindex=\"-1\"></a>"); } } tb.find(".textbox-button").remove(); if (opts.buttonText || opts.buttonIcon) { var btn = $("<a href=\"javascript:void(0)\" class=\"textbox-button\"></a>") .prependTo(tb); btn.addClass("textbox-button-" + opts.buttonAlign).linkbutton({ text : opts.buttonText, iconCls : opts.buttonIcon, onClick : function() { var t = $(this).parent().prev(); t.textbox("options").onClickButton.call(t[0]); } }); } if (opts.label) { if (typeof opts.label == "object") { _4e4.label = $(opts.label); _4e4.label.attr("for", _4e5); } else { $(_4e4.label).remove(); _4e4.label = $("<label class=\"textbox-label\"></label>") .html(opts.label); _4e4.label.css("textAlign", opts.labelAlign).attr("for", _4e5); if (opts.labelPosition == "after") { _4e4.label.insertAfter(tb); } else { _4e4.label.insertBefore(_4e3); } _4e4.label .removeClass("textbox-label-left textbox-label-right textbox-label-top"); _4e4.label.addClass("textbox-label-" + opts.labelPosition); } } else { $(_4e4.label).remove(); } _4e6(_4e3); _4e7(_4e3, opts.disabled); _4e8(_4e3, opts.readonly); }; function _4e9(_4ea) { var tb = $.data(_4ea, "textbox").textbox; tb.find(".textbox-text").validatebox("destroy"); tb.remove(); $(_4ea).remove(); }; function _4eb(_4ec, _4ed) { var _4ee = $.data(_4ec, "textbox"); var opts = _4ee.options; var tb = _4ee.textbox; var _4ef = tb.parent(); if (_4ed) { if (typeof _4ed == "object") { $.extend(opts, _4ed); } else { opts.width = _4ed; } } if (isNaN(parseInt(opts.width))) { var c = $(_4ec).clone(); c.css("visibility", "hidden"); c.insertAfter(_4ec); opts.width = c.outerWidth(); c.remove(); } var _4f0 = tb.is(":visible"); if (!_4f0) { tb.appendTo("body"); } var _4f1 = tb.find(".textbox-text"); var btn = tb.find(".textbox-button"); var _4f2 = tb.find(".textbox-addon"); var _4f3 = _4f2.find(".textbox-icon"); if (opts.height == "auto") { _4f1.css({ margin : "", paddingTop : "", paddingBottom : "", height : "", lineHeight : "" }); } tb._size(opts</