📄 maskededitbehavior.js
字号:
this._DirectSelText = "R";
if (Sys.Browser.agent == Sys.Browser.Opera)
{
return;
}
this._SetCancelEvent(evt);
if (evt.shiftKey)
{
curpos = this._getCurrentPosition();
this.setSelectionRange(curpos,this._LogicLastPos+1);
}
else
{
this.setSelectionRange(this._LogicLastPos+1,this._LogicLastPos+1);
}
}
else if (scanCode == 36 || scanCode == 33) //Home or pgup
{
this._DirectSelText = "L";
if (Sys.Browser.agent == Sys.Browser.Opera)
{
return;
}
this._SetCancelEvent(evt);
if (evt.shiftKey)
{
curpos = this._getCurrentPosition();
this.setSelectionRange(this._LogicFirstPos,curpos);
}
else
{
this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos);
}
}
else if (scanCode == 37) //left
{
this._DirectSelText = "L";
if (Sys.Browser.agent == Sys.Browser.Opera)
{
return;
}
this._SetCancelEvent(evt);
if (evt.shiftKey)
{
var BoundSel = this._GetBoundSelection();
if (BoundSel)
{
if (BoundSel.left > this._LogicFirstPos)
{
BoundSel.left --;
}
this.setSelectionRange(BoundSel.left,BoundSel.right);
}
else
{
var pos = this._getCurrentPosition();
if (pos > this._LogicFirstPos)
{
this.setSelectionRange(pos -1,pos);
}
}
}
else
{
curpos = this._getCurrentPosition()-1;
if (curpos < this._LogicFirstPos)
{
curpos = this._LogicFirstPos;
}
this.setSelectionRange(curpos,curpos);
}
if (Sys.Browser.agent == Sys.Browser.Opera)
{
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
this._SaveText = wrapper.get_Value();
this._SavePosi = curpos;
this._timer.set_enabled(false);
this._timer.set_interval(1);
this._timer.set_enabled(true);
}
}
else if (scanCode == 39) // right
{
this._DirectSelText = "R";
if (Sys.Browser.agent == Sys.Browser.Opera)
{
return;
}
this._SetCancelEvent(evt);
if (evt.shiftKey)
{
var BoundSel = this._GetBoundSelection();
if (BoundSel)
{
if (BoundSel.right < this._LogicLastPos+1)
{
BoundSel.right ++;
}
this.setSelectionRange(BoundSel.left,BoundSel.right);
}
else
{
pos = this._getCurrentPosition();
if (pos < this._LogicLastPos+1)
{
this.setSelectionRange(pos,pos+1);
}
}
}
else
{
curpos = this._getCurrentPosition()+1;
if (curpos > this._LogicLastPos+1)
{
curpos = this._LogicLastPos+1;
}
this.setSelectionRange(curpos,curpos);
}
if (Sys.Browser.agent == Sys.Browser.Opera)
{
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
this._SaveText = wrapper.get_Value();
this._SavePosi = curpos;
this._timer.set_enabled(false);
this._timer.set_interval(1);
this._timer.set_enabled(true);
}
}
else if (scanCode == 27) // esc
{
this._SetCancelEvent(evt);
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
if (this._EmptyMask == this._initialvalue)
{
wrapper.set_Value("");
}
else
{
wrapper.set_Value(this._initialvalue);
}
this._onFocus();
}
//else if (scanCode == 38 || scanCode == 40) //up - down
}
// any other nav key
this._SetCancelEvent(evt);
}
//
// backspace at current position
//
, _backspace : function(curpos)
{
var exec = false;
if (curpos > this._LogicFirstPos)
{
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
var masktext = wrapper.get_Value();
curpos = this._getPreviousPosition(curpos-1);
this._deleteAtPosition(curpos, true);
exec = true;
}
return exec;
}
//
// delete at current position
//
, _deleteAtPosition : function(curpos,isBS)
{
var exec = false;
var lastpos = this._LogicLastPos+1;
if (this._LogicLastInt != -1 && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft)
{
lastpos = this._LogicLastInt;
}
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
if (isBS == false && this._InputDirection == AjaxControlToolkit.MaskedEditInputDirections.RightToLeft && curpos == lastpos)
{
ClearText = this._getClearMask(wrapper.get_Value());
if (ClearText != "")
{
exec = true;
ClearText = ClearText.replace(new RegExp("(\\" + this.get_CultureThousandsPlaceholder() + ")", "g"), "") + '';
if (ClearText.substring(ClearText.length-1,ClearText.length) == this.get_CultureDecimalPlaceholder())
{
ClearText = ClearText.substring(0,ClearText.length-1);
}
var arr_num = ClearText.split(this.get_CultureDecimalPlaceholder());
if (this._LogicLastInt != -1 && arr_num[0] != "")
{
arr_num[0] = arr_num[0].substring(0,arr_num[0].length-1);
ClearText = arr_num[0];
if (arr_num.length = 2)
{
ClearText += this.get_CultureDecimalPlaceholder() + arr_num[1];
}
}
else
{
ClearText = ClearText.substring(0,ClearText.length-1);
}
ClearText += this._LogicSymbol;
this.loadValue(ClearText,lastpos);
}
}
else
{
var masktext = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1);
var logiTxt = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1);
var qtdDt = 0;
var curvld = curpos - this._LogicFirstPos;
if (this._isValidMaskedEditPosition(curpos))
{
exec = true;
if (this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime)
{
var arr_mask = masktext.split(" ");
var posmask = curpos - this._LogicFirstPos;
if (posmask > arr_mask[0].length)
{
// at position time
masktext = arr_mask[1];
qtdDt = arr_mask[0].length +1;
logiTxt = logiTxt.substring(qtdDt);
curvld -= qtdDt;
}
else
{
// at position date
masktext = arr_mask[0];
logiTxt = logiTxt.substring(0,arr_mask[0].length);
}
}
var resttext = masktext.substring(curvld+1);
var restlogi = logiTxt.substring(curvld+1);
masktext = masktext.substring(0,curvld) + this._PromptChar;
logiTxt = logiTxt.substring(0,curvld) + this._LogicPrompt;
// clear rest of mask
for (i = 0 ; i < parseInt(resttext.length,10) ; i++)
{
if (this._isValidMaskedEditPosition(curpos+1+i))
{
masktext += this._PromptChar;
logiTxt += this._LogicPrompt;
}
else
{
masktext += resttext.substring(i,i+1);
logiTxt += restlogi.substring(i,i+1);
}
}
// insert only valid text
posaux = this._getNextPosition(curpos);
for (i = 0 ; i < parseInt(resttext.length,10) ; i++)
{
if (this._isValidMaskedEditPosition(curpos+1+i) && restlogi.substring(i,i+1) != this._LogicPrompt)
{
masktext = masktext.substring(0,posaux- this._LogicFirstPos-qtdDt) + resttext.substring(i,i+1) + masktext.substring(posaux+1- this._LogicFirstPos-qtdDt);
logiTxt = logiTxt.substring(0,posaux- this._LogicFirstPos-qtdDt) + restlogi.substring(i,i+1) + logiTxt.substring(posaux+1- this._LogicFirstPos-qtdDt);
posaux = this._getNextPosition(posaux+1);
}
}
if (this._MaskType == AjaxControlToolkit.MaskedEditType.DateTime)
{
var oritext = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1);
var orilogi = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1)
var arr_mask = oritext.split(" ");
var posmask = curpos - this._LogicFirstPos;
if (posmask > arr_mask[0].length)
{
// at position time
masktext = arr_mask[0] + " " + masktext;
logiTxt = orilogi.substring(0, qtdDt) + logiTxt;
}
else
{
// at position date
masktext = masktext + " " + arr_mask[1];
logiTxt = logiTxt + orilogi.substring(arr_mask[0].length);
}
}
var currValue = wrapper.get_Value();
masktext = currValue.substring(0,this._LogicFirstPos) + masktext + currValue.substring(this._LogicLastPos+1);
this._LogicTextMask = this._LogicTextMask.substring(0,this._LogicFirstPos) + logiTxt + this._LogicTextMask.substring(this._LogicLastPos+1);
wrapper.set_Value(masktext);
}
}
return exec;
}
//
// Paste clip board
//
,_ShowModalClipBoardInput : function()
{
var clip = prompt(this._ClipboardText,"");
return clip;
}
,_PasteFromClipBoard : function()
{
var value = null;
var curpos;
var iniSel = -1;
var fimSel = -1;
if (Sys.Browser.agent == Sys.Browser.InternetExplorer)
{
value = window.clipboardData.getData("Text");
}
else
{
//save current values because lost focus
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());
var oldvalue = wrapper.get_Value();
var BoundSel = this._GetBoundSelection();
var curpos = this._getCurrentPosition();
var OldAuto = this._AutoComplete;
var OldInv = this._ClearTextOnInvalid;
var OldCls = this._ClearMaskOnLostfocus;
var OldDir = this._DirectSelText;
this._AutoComplete = false;
this._ClearTextOnInvalid = false;
this._ClearMaskOnLostfocus = false;
value = this._ShowModalClipBoardInput();
this._AutoComplete = OldAuto;
this._ClearTextOnInvalid = OldInv;
this._ClearMaskOnLostfocus = OldCls;
wrapper.set_Value(oldvalue);
if (BoundSel)
{
this.setSelectionRange(BoundSel.left,BoundSel.right);
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -