我正在尝试确保输入字段的内容在允许的字符数内,并且如果在输入字段之后没有打印出错误消息。波纹管js包含在外部js文件中。
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';
}
}
基本标记
<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>
表单只是提交而没有发生任何事情。我哪里错了?任何帮助将不胜感激。
答案 0 :(得分:0)
在表单中触发keyup事件时调用该函数。因此,当用户在键入单个字符后开始键入他/她的姓名时,将显示错误消息。
在触发keyup事件时调用该函数,而不是在发生某些按钮点击时调用该函数(当输入整个名字时)。
答案 1 :(得分:0)
你忘了做document.getElementById。 Firebug正在给出错误
答案 2 :(得分:0)
获取错误:
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
答案 3 :(得分:0)
试试这个
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';
}
}
答案 4 :(得分:0)
查看以下http://jsfiddle.net/VL7dc/2/
而不是解释你的错误在哪里,你认为你需要尝试理解为什么这样做有效,你的意思不是。
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';
}
}