1

再次回到另一个绝对初学者的问题。我正在验证一个表单,并且我希望将文本输入限制为 2 个以上且少于 15 个字符。我试过了:

function validateForm(formElement) {
var valid = true;
if (formElement.first_name.value.length < 2) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 characters long.');
if (formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is less than 15 characters long.');

if (formElement.first_name.value.length < 2 && formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 and less than 15 characters long.');

两者都会导致错误。我怎样才能做到这一点?

4

3 回答 3

1

这里有一个逻辑问题 - 长度不能小于 2 并且大于 15。你应该使用的是小于 2 或大于 15:

if (formElement.first_name.value.length < 2 || formElement.first_name.value.length > 15) return focusElement(formElement.first_name, 'Please enter a First Name that is more than 2 and less than 15 characters long.');

我也不确定您在valid = true这里使用的变量是什么

于 2012-10-18T04:14:14.783 回答
0

您的第二个验证码不正确。

没有什么可以是 <2 并且同时 >15。

您应该在两者之间使用 'OR'||操作,而不是 'AND' &&

是什么FocusElement。显示代码。

于 2012-10-18T04:17:35.440 回答
0

你得到哪个错误?我认为 FocusElement 是您的用户定义函数。我像下面一样测试你的代码,没关系。

<form name="frm">
  <input type="text" name="first_name">
  <input type="button" onClick="validateForm(frm)" value="Submit">
</form>

我使用您的 validateForm 函数并编写 FocusElement javascript 函数,如下所示。

function focusElement(control,message)
{
   control.focus();
   alert(message);
}

如果你想使用第二个验证码,你应该使用 || 代替 &&。

于 2012-10-18T04:40:37.147 回答