我有一个AJAX ToolKit MaskedEditExtender控件:
<asp:TextBox ID="payRateTextBox" runat="server"
CssClass="valueControl"></asp:TextBox>
<asp:MaskedEditExtender ID="payRateMaskedEditExtender" runat="server"
AcceptNegative="Left" InputDirection="RightToLeft"
Mask="999.99" MaskType="Number"
TargetControlID="payRateTextBox" />
获得焦点时,空文本如下所示:
的 的 __ _ _ 即可。 _ _
问题是扩展器剂量允许用户输入0作为该点左侧第一个数字中的第一个输入字符(X所在的位置)..
的 的 ___ X ___
Here是一个示范。
建议得到赞赏..
答案 0 :(得分:1)
这是一个已知问题。不幸的是,它似乎还没有任何解决方案。
看一下这些链接:
http://ajaxcontroltoolkit.codeplex.com/workitem/25108
ASP.NET MaskedEditExtender & TextBox: Cannot enter zero, workarounds? Solutions?
答案 1 :(得分:1)
尝试将此代码放入您的页面
<script type="text/javascript">
Sys.Application.add_load(function () {
Sys.Extended.UI.MaskedEditBehavior.prototype._MoveDecimalPos =
function () {
var e = this.get_element();
var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e);
var curpos = this._LogicFirstPos;
var max = this._LogicLastPos;
var posDc = -1;
while (curpos < max) {
if (wrapper.get_Value().substring(curpos, curpos + 1) ==
this.get_CultureDecimalPlaceholder()) {
posDc = curpos + 1;
break;
}
curpos++;
}
if (posDc == -1) {
return;
}
this.setSelectionRange(posDc, posDc);
};
});
</script>
答案 2 :(得分:1)
我知道我无法获得自己的赏金,所以,我的答案仅仅是为了解决这个问题。
只需取消分配InputDirection
属性即可解决问题!我想在使用浮点时使用它是不合适的..
当然,如果我知道在第一时间我会节省50个声誉;)