#c# #javascript #jquery #asp.net
#c# #javascript #jquery #asp.net
Вопрос:
На Asp.Net в моем текстовом поле я не хочу вводить после нуля три цифры. Например, если вы вводите текстовое поле 0.222, оно должно быть 0.22. После 0.22 вы не должны ничего вводить. Как я могу это сделать?
Спасибо
Комментарии:
1. Вы имеете в виду, что хотите запретить пользователю вводить более двух цифр после запятой?
2. При отправке проверьте содержимое входных данных. например /.dd $/.test(input.value)
Ответ №1:
Используйте замаскированное текстовое поле.
Комментарии:
1. ДА. Но после точки. Например, если я введу 1.222, это должно быть 1.22, но вы можете ввести 12345, просто я хочу удалить после точки
2. Зачем вам это делать? Если вы хотите, чтобы после десятичной точки было только две цифры, почему вы разрешаете пользователю вводить больше? Почему бы не ограничить его вводом более двух цифр в первую очередь?
3. это связано с математическими вычислениями. если вы напишете 11111, вычисление будет выполнено нормально. Но 1.2222 отличается. Наша функция не принимает. После точки мы не хотим округлять, просто удаляем.
4. Для этого и существует текстовое поле с маской. Вы можете ограничить ее двумя цифрами после десятичной точки. Если пользователь может ввести только 1.22, это точно так же, как если бы он ввел 1.222222, а вы удалили последние три цифры…
Ответ №2:
Я думаю, что лучше использовать Expression
вместо Masked Textbox
.
С помощью простого RegularExpressionValidator
способа вы можете сделать это, просто перетащите один из них на свой рабочий лист, а затем установите TargetControl
его значение в текстовое поле, а затем установите его значение в ^ddd
.
Комментарии:
1. Ваше регулярное выражение даже отдаленно не напоминает его требование … 0.22 было бы недопустимым, 1dd было бы допустимым…
Ответ №3:
Используя javascript, добавьте атрибут onkeyup=’FormatNumber(this)’ в тег.
function formatNumber(textBox) {
var current = textBox.value;
var output = "";
//find '000' in current
//delete what you want
textBox.value = output;
}