再次回到另一个绝对的初学者问题。我正在验证表单,我希望文本输入限制在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.');
两者都会导致错误。我怎么能做到这一点?
答案 0 :(得分: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
变量是什么
答案 1 :(得分:0)
您的第二个验证码不正确。
没有什么可以&lt; 2并且同时&gt; 15。
你应该在两者之间使用'OR'||
操作,而不是'和'&&
。
什么是FocusElement
。显示代码。
答案 2 :(得分: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);
}
如果你想使用第二个验证码,你应该使用||而不是&amp;&amp;。