Когда у вас есть это:
if(info.namex.value==" ")
// -------------------^--
Вы не проверяете, является ли строка пустой. Вы проверяете, имеет ли он ровно один пробел. Это пустое пространство между двумя кавычками является символом, и ваша проверка требует ввода, чтобы иметь его. Вы проверяете, нажал ли пользователь клавишу пробела один раз. Чтобы проверить пустую строку, вы должны сделать это:
if(info.namex.value=="")
Однако вы также можете написать это так:
if(!info.namex.value)
Это введет кодовый блок if
, когда info.namex.value
ложно. Ложное значение 0
, undefined
, null
пустая строка ""
и более. Подробнее об этом здесь .
Также, как сказал Кшиштоф Янишевский, вы должны удалить цитаты из null
. Если вы помещаете его в кавычки, вы не сравниваете значение null
, вы сравниваете его со строкой с содержимым «null». И.Е. Вы проверяете, набрал ли пользователь «null» в поле ввода.
null
: примитивное значение null
"null"
: строка с содержимым "n", "u", "l" и "l"
Подробнее о null
здесь .
Вам, вероятно, понадобится следующее:
<html>
<body>
<script>
function x(info) {
if (!info.namex.value.match(/\S/)) {
alert("Check again");
return false;
}
}
</script>
<form method="post" name="a" onsubmit="return x(this)">
<input type="text" name="namex">
<input type="submit" value="submit">
</form>
</body>
</html>
В этой строке:
!info.namex.value.match(/\S/)
Это регулярное выражение /\S/
, и оно будет соответствовать любому непробельному символу. Предупреждение будет отображаться, если на входе присутствует только символ без пробела , а не . Это означает, что любая комбинация пробелов не сделает это. Если у вас есть " "
или " "
- это просто пробел, а не какой-либо законный ввод. Вы, вероятно, не хотите этого. Если строка пуста ""
, непробельный символ все еще отсутствует, поэтому предупреждение по-прежнему отображается.
Единственный способ пройти проверку, если у вас есть «видимый» символ в любом месте ввода. Если у вас есть только пробелы, табуляции, переводы строк - это пробелы. Ваш чек требует как минимум одну букву, цифру, символ - что угодно , но эти пробельные символы.
Узнайте больше о регулярных выражениях здесь .