Я знаю, что существует много похожих тем в строке темы, поэтому я сразу пойду, чтобы прояснить мою проблему. У меня есть простая форма, в которой я проверяю, в которой тестирование для пустых полей выполняется отлично, и после нескольких других сообщений в форуме попытались выполнить тесты для ввода цифр или букв, но функции просто не будут работать.JavaScript - подтверждение только для числового/алфавитного текста
Вот отрывок из моей функции рабочего NotEmpty:
function validateNotEmpty(input, id)
{
var errorDisplay = document.getElementById(id);
var notEmpty;
if (input == "") // check if input is empty
{
errorDisplay.innerHTML = "This is a requiered field";
notEmpty = false; // update return value
} // end if
else
{
errorDisplay.innerHTML = ""; // clear the error area
notEmpty = true; // update return value
} // end else
return notEmpty; // return whether the input is empty
}// end function validateNotEmpty
И следующие мои два (не работают цифровые/алфавитные тестеры):
function validateNotNumber(input, id)
{
var errorDisplay = document.getElementById(id);
var notNumber;
for (var i=0;i<input.value.length;i++){
temp=input.value.substring(i,i+1);
console.log(temp);
if (digits.indexOf(temp)==-1){
errorDisplay.innerHTML = "Sorry, this section can not have numbers";
notNumber = false;
}
else
{
errorDisplay.innerHTML = ""; // clear the error area
notEmpty = true; // update return value
} // end else
}
return notNumber;
}
function validateNotLetter(input, id)
{
var errorDisplay = document.getElementById(id);
var notLetter;
for (var i=0;i<input.value.length;i++){
temp=input.value.substring(i,i+1);
console.log(temp);
if (alphabets.indexOf(temp)==-1){
errorDisplay.innerHTML = "Sorry, this section can not have letter";
notLetter = false;
}
else
{
errorDisplay.innerHTML = ""; // clear the error area
notLetter = true; // update return value
} // end else
}
return notLetter;
}
Помимо этого, это как я называю функции javascript из своей формы:
<td width="135" valign="top">
<input size="15" type="text" name="Full_Name" value="" onblur = "validateNotNumber(this.value, 'nameError')"/>
<p> <span id = "nameError" class = "errorMessage"></span> </p>
</td>
Спасибо за любую помощь/указатели, stil Я довольно новичок в JavaScript, поэтому обертывание головы вокруг проверки было довольно сложным.
регулярное выражение упростит ваш код. Если вы потратите некоторое время и очистите свой пост и создадите простой пример кода, мы поможем. – Nix
проблема в вашей функции validateNotNumber во время цикла вы используете input.value.length, а используете только input.length, то же самое относится и к этой строке temp = input.value.substring (i, i + 1); плюс вы используете цифры, которые не определены. –