📄 maskededitbehavior.js
字号:
{
wrapper.set_Value(this._SaveMask);
}
if (this._timer.get_interval() != 100)
{
this._timer.set_interval(100);
}
}
this._timer.set_enabled(true);
}
, _onChange : function()
{
if (!this._FiringOnChange) {
//capture and initialize external input Ex : calendar Extender
this._onFocus();
}
}
, _onFocus : function()
{
this._InLostfocus = false;
this._RemoveDivToolTip();
if (this._OnFocusCssClass != "")
{
this.AddCssClassMaskedEdit(this._OnFocusCssClass);
}
var e = this.get_element();
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(e);
this._initialvalue = wrapper.get_Value();
if (this._ClearMaskOnLostfocus)
{
this._InitValue(wrapper.get_Value(),false);
}
else
{
this._InitValue(wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1),false);
}
var ClearText = this._getClearMask();
var hastip = false;
if (this._MessageValidatorTip && ClearText == "")
{
hastip = true;
}
if ( (this._MaskType == AjaxControlToolkit.MaskedEditType.Time || this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime) && this.get_CultureAMPMPlaceholder() != "" && ClearText == "")
{
if (this._AcceptAmPm)
{
this.InsertAMPM(this.get_CultureAMPMPlaceholder().substring(0,1));
}
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && ClearText != "")
{
if (this._LogicSymbol == "-" && this._OnFocusCssNegative != "")
{
this.AddCssClassMaskedEdit(this._OnFocusCssNegative);
}
}
if (this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft)
{
if (this._LogicLastInt != -1)
{
this.setSelectionRange(this._LogicLastInt,this._LogicLastInt);
}
else
{
this.setSelectionRange(this._LogicLastPos+1,this._LogicLastPos+1);
}
}
else
{
if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && ClearText != "")
{
var pos = this._getLastEmptyPosition()+1;
this.setSelectionRange(pos,pos);
}
else
{
this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos);
}
}
this.ShowTooltipMessage(false);
if (hastip)
{
this.ShowTooltipMessage(true);
}
}
, _PeforformValidLostFocus : function(isblur)
{
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
var ClearText = this._getClearMask(wrapper.get_Value());
if (ClearText == "" && this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._LogicSymbol == "-")
{
this.InsertSignal("+");
}
// auto format
if (ClearText != "" && this._AutoComplete && this._MaskType == AjaxControlToolkit.MaskedEditType.Date)
{
this.AutoFormatDate();
}
else if (ClearText != "" && this._AutoComplete && this._MaskType == AjaxControlToolkit.MaskedEditType.Time)
{
this.AutoFormatTime();
}
else if (ClearText != "" && this._AutoComplete && this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime)
{
this.AutoFormatDateTime();
}
else if (ClearText != "" && this._AutoComplete && this._MaskType == AjaxControlToolkit.MaskedEditType.Number)
{
this.AutoFormatNumber();
}
// clear mask and set CSS
if ((this._ClearMaskOnLostfocus && ClearText != "") || (isblur && this._ClearMaskOnLostfocus) )
{
wrapper.set_Value(this._getClearMask(wrapper.get_Value()));
}
this.AddCssClassMaskedEdit("");
if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._LogicSymbol == "-" && this._OnBlurCssNegative != "")
{
this.AddCssClassMaskedEdit(this._OnBlurCssNegative);
}
// perform validation
this.ShowTooltipMessage(false);
this._RemoveDivToolTip();
var IsValid = this._CaptureClientsValidators();
if (!IsValid)
{
if (this._OnInvalidCssClass != "")
{
this.AddCssClassMaskedEdit(this._OnInvalidCssClass);
}
if (this._ClearTextOnInvalid)
{
this._createMask();
wrapper.set_Value(this._EmptyMask);
}
}
return IsValid;
}
, _onBlur : function(evt)
{
this._InLostfocus = true;
var IsValid = this._PeforformValidLostFocus(true);
if (IsValid)
{
// trigger TextChanged with postback
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
if (!this.get_element().readOnly && (this._initialvalue != wrapper.get_Value()) && evt) {
this._fireChanged();
}
}
}
, _fireChanged : function() {
/// <summary>
/// Attempts to fire the change event on the attached textbox
/// </summary>
this._FiringOnChange = true;
var elt = this.get_element();
if (document.createEventObject) {
elt.fireEvent("onchange");
} else if (document.createEvent) {
var e = document.createEvent("HTMLEvents");
e.initEvent("change", true, true);
elt.dispatchEvent(e);
}
this._FiringOnChange = false;
}
, _onKeyPress : function(evt)
{
var scancode = this._KeyCode(evt);
if (scancode == 9) //tab default action
{
return true;
}
if (scanCode == 13)
{
var IsValid = this._PeforformValidLostFocus(false);
this._ErroOnEnter = false;
if (!IsValid)
{
this._ErroOnEnter = true;
}
// Opera not perform cancel event. Re-perform at Timer
if (Sys.Browser.agent == Sys.Browser.Opera)
{
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
this._SaveText = wrapper.get_Value();
this._SavePosi = this._getCurrentPosition();
this._timer.set_enabled(false);
this._timer.set_interval(1);
this._timer.set_enabled(true);
}
return IsValid;
}
if (this._OnFocusCssClass != "" && this._ErroOnEnter)
{
this.AddCssClassMaskedEdit(this._OnFocusCssClass);
}
this._ErroOnEnter = false;
if (!this._isNormalChar(evt,scancode))
{
this._ExecuteNav(evt,scancode);
return false;
}
// process and validate normal char
curpos = this._deleteTextSelection();
if (curpos == -1)
{
curpos = this._getCurrentPosition()
}
var c = String.fromCharCode(scanCode);
if (this._MaskType == AjaxControlToolkit.MaskedEditType.Date && c == this.get_CultureDatePlaceholder())
{
this._AdjustElementDate();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Time && c == this.get_CultureTimePlaceholder())
{
this._AdjustElementTime();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime && (c == this.get_CultureTimePlaceholder() || c == this.get_CultureDatePlaceholder()) )
{
this._AdjustElementDateTime(c);
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.LeftToRight && c == this.get_CultureDecimalPlaceholder() && curpos == this._LogicLastInt)
{
this._AdjustElementDecimalLTR();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft && c == this.get_CultureDecimalPlaceholder() && curpos == this._LogicLastInt)
{
this._AdjustElementDecimalRTL();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && c == this.get_CultureDecimalPlaceholder() && curpos != this._LogicLastInt)
{
this._MoveDecimalPos();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.LeftToRight && c == this.get_CultureThousandsPlaceholder() )
{
this._MoveThousandLTR();
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft && c == this.get_CultureThousandsPlaceholder() )
{
this._MoveThousandRTL();
}
else if ( (this._MaskType == AjaxControlToolkit.MaskedEditType.Time || this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime) && this.get_CultureFirstLettersAMPM().toUpperCase().indexOf(c.toUpperCase()) != -1)
{
if (this._AcceptAmPm)
{
this.InsertAMPM(c);
this.setSelectionRange(curpos,curpos);
}
}
else if (this._MaskType == AjaxControlToolkit.MaskedEditType.Number && this._AcceptNegative != AjaxControlToolkit.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1)
{
if (Sys.Browser.agent != Sys.Browser.Opera)
{
this.InsertSignal(c);
this.setSelectionRange(curpos,curpos);
}
else
{
// Opera perform double event! when press "-" at numpad key
if (this._SaveSymb == "")
{
this.InsertSignal(c);
this.setSelectionRange(curpos,curpos);
this._SaveSymb = c;
this._timer.set_enabled(false);
this._timer.set_interval(1);
this._timer.set_enabled(true);
}
else
{
this._SaveSymb = "";
}
}
}
else
{
var OriPos = curpos;
curpos = this._getNextPosition(curpos);
var logiccur = curpos;
if (this._LogicLastInt != -1 && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft)
{
if (OriPos == this._LogicLastInt)
{
logiccur = this._getLastEmptyPosition();
}
}
else
{
if (curpos >= this._LogicLastPos+1 && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft)
{
logiccur = this._getLastEmptyPosition();
}
}
if (this._processKey(logiccur,c))
{
if (this._MessageValidatorTip)
{
this.ShowTooltipMessage(false);
}
if (this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.LeftToRight)
{
this._insertContent(c,logiccur);
curpos = this._getNextPosition(logiccur+1);
}
else if (this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft)
{
if (this._LogicLastInt == -1)
{
if (curpos < this._LogicLastPos+1)
{
this._insertContent(c,logiccur);
curpos = this._getNextPosition(logiccur+1);
}
else
{
this._insertContentRight(c);
curpos = this._LogicLastPos+1;
}
}
else
{
if (OriPos != this._LogicLastInt)
{
this._insertContent(c,logiccur);
curpos = this._getNextPosition(logiccur+1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -