javascript表单验证不做任何事情
我试图确保输入字段的内容在允许的字符数内,如果输入字段后没有打印出错误消息。bellow js包含在外部js文件中javascript表单验证不做任何事情,javascript,html,forms,validation,Javascript,Html,Forms,Validation,我试图确保输入字段的内容在允许的字符数内,如果输入字段后没有打印出错误消息。bellow js包含在外部js文件中 function validateForm() { var err_msg = getElementById('feedback_msg_first_name').value; var first_name = getElementById('first_name').value; if(first_name.leng
function validateForm()
{
var err_msg = getElementById('feedback_msg_first_name').value;
var first_name = getElementById('first_name').value;
if(first_name.length < 2)
{
err_msg.innerHTML = 'first name cannot contain less than 2 characters';
return false;
}
if(first_name.length > 20)
{
err_msg.innerHTML = 'first name cannot contain more than 20 characters';
err_msg.style.color = 'red';
}
}
函数validateForm()
{
var err_msg=getElementById('feedback_msg_first_name')。值;
var first\u name=getElementById('first\u name')。值;
如果(名字长度<2)
{
err_msg.innerHTML='名字不能包含少于2个字符';
返回false;
}
如果(名字长度>20)
{
err_msg.innerHTML='名字不能包含超过20个字符';
err_msg.style.color='red';
}
}
基本标记
<script type="text/javascript" language="javascript" src="client_form_val.js"></script>
</head>
<body>
<form id="register" name="register" action="includes/register.inc.php" method="post" onsubmit ="return validateForm();">
<label class="label">First Name:</label> <input type="text" name="first_name" id="first_name" /><br />
<span id="feedback_msg_first_name"></span>
名字:
表单只是简单地提交,没有发生任何事情。我哪里出错了?如果有任何帮助,我们将不胜感激。在表单中触发keyup事件时,您正在调用该函数。因此,当用户在键入单个字符后开始键入其姓名时,将显示错误消息
不要在触发keyup事件时调用函数,而是在某个按钮单击时调用该函数(当键入整个名字时)。您忘记执行document.getElementById。Firebug在以下方面给出错误获取错误:
Uncaught ReferenceError: getElementById is not defined
当你修复丢失的文件时,你会得到这个
Uncaught TypeError: Cannot set property 'innerHTML' of undefined
第二个原因是这样的
var err_msg = getElementById('feedback_msg_first_name').value; <-- string
err_msg.innerHTML = 'first name cannot contain less than 2 characters'; <--performing innerHTML on string
var err\u msg=getElementById('feedback\u msg\u first\u name')。值 试试这个
function validateForm()
{
var err_msg = document.getElementById('feedback_msg_first_name');
var first_name = document.getElementById('first_name').value;
if(first_name.length < 2)
{
err_msg.innerHTML = 'first name cannot contain less than 2 characters';
return false;
}
if(first_name.length > 20)
{
err_msg.innerHTML = 'first name cannot contain more than 20 characters';
err_msg.style.color = 'red';
}
}
函数validateForm()
{
var err_msg=document.getElementById('feedback_msg_first_name');
var first\u name=document.getElementById('first\u name')。值;
如果(名字长度<2)
{
err_msg.innerHTML='名字不能包含少于2个字符';
返回false;
}
如果(名字长度>20)
{
err_msg.innerHTML='名字不能包含超过20个字符';
err_msg.style.color='red';
}
}
请查看以下内容
与其解释你哪里出了问题,不如想想你需要试着去理解为什么这是有效的,而你的答案是无效的
function validateForm() {
var err_msg = document.getElementById('feedback_msg_first_name');
var first_name = document.getElementById('first_name').value;
if(first_name.length < 2) {
err_msg.innerHTML = 'first name cannot contain less than 2 characters';
return false;
} else {
err_msg.innerHTML = '';
}
if(first_name.length > 20)
{
err_msg.innerHTML = 'first name cannot contain more than 20 characters';
err_msg.style.color = 'red';
}
}
函数validateForm(){
var err_msg=document.getElementById('feedback_msg_first_name');
var first\u name=document.getElementById('first\u name')。值;
如果(名字长度<2){
err_msg.innerHTML='名字不能包含少于2个字符';
返回false;
}否则{
err_msg.innerHTML='';
}
如果(名字长度>20)
{
err_msg.innerHTML='名字不能包含超过20个字符';
err_msg.style.color='red';
}
}
您的函数未包装在脚本中tags@AaronFowler你错过了下面的一句话,js包含在一个外部js文件中,提交时没有检查任何内容。似乎在检查输入字段的键控?现在我真的很困惑。我复制了那段代码,但仍然不起作用,它可以在js fiddlenevermind上工作,现在非常感谢munch,我只是错过了else语句。