我正在开发asp.net web应用程序。
我在该文本框中有一个文本框我需要在按下提交按钮之前允许十进制数字。那么在提交提交按钮之前如何在客户端执行此操作。
如果可以通过javascript完成,ajax aur来自后面的代码请告诉我。
答案 0 :(得分:2)
你可以通过内置的asp.net验证或使用javascript两种方式完成。通过javascript你可以这样做(这将阻止用户输入字符键,因此只允许数字):
<asp:Text onkeypress="return isNumber(event);" runat="server"/>
<script>
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
</script>
答案 1 :(得分:1)
如果您需要代码隐藏替代方案,则可以依赖TryParse
。 Button1
和TextBox1
的示例代码:
string currentDot1 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string currentDot2 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
string currentDot3 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.PercentDecimalSeparator;
decimal curVal = 0m;
if (TextBox1.Text.Trim().Length > 0 && (TextBox1.Text.Contains(currentDot1) || TextBox1.Text.Contains(currentDot2) || TextBox1.Text.Contains(currentDot3)) && decimal.TryParse(TextBox1.Text, out curVal))
{
//curVal is valid decimal
}
else
{
//NO DECIMAL
}
答案 2 :(得分:1)
不是在javascript或服务器端验证中编写自己的自定义验证代码,而是有一些库允许您使用jquery执行验证客户端。
添加这些脚本引用(您还需要jquery):
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
然后您可以执行以下操作:
<script type="text/javascript>
$(document).ready(function()
{
$("#idOfMyForm").validate(
{
rules: {
IdOfMyTextBox: {
required: true,
number: true
}
}
});
$("#submitButton").click(function(e){
if(!$("#idOfMyForm").valid(){
e.preventDefault(); //stop the form from submitting
alert("My form is not valid.");
}
//continue submitting the form, do whatever you need to do.
});
});
</script>