尝试创建一个简单的表单,如果未填写任何内容,该表单将显示错误
Trying to create a simple form that will display an error if nothing is filled in
我最近刚开始学习javascript,正在上一些课,对于我的一个课程,我必须创建一个简单的表单。
应该有javascript将显示错误消息,如果在按下提交按钮时未填写表单。
按下按钮时没有任何反应,我什至不确定该功能是否正在运行。
我没有输入任何"document.write",我一步一步地按照说明进行操作,但仍然无法让它正常工作。
我将不胜感激我能得到的任何帮助,非常感谢。
<html>
<head>
<title>My Form</title>
</head>
<body>
<script type="text/javascript">
function register(){
var x = new Array();
x[0] = document.getElementById('name').value;
x[1] = document.getElementById('lname').value;
x[2] = document.getElementById('email').value;
x[3] = document.getElementById('pw').value;
x[4] = document.getElementById('pwc').value;
var h = new Array();
h[0] = <span style="color:'red'>Please type first name!</span>";
h[1] = <span style="color:'red'>Please type last name!</span>";
h[2] = <span style="color:'red'>Please type email!</span>";
h[3] = <span style="color:'red'>Please type a password!</span>";
h[4] = <span style="color:'red'>Please confirm password!</span>";
var divs = new Array("mname", "mlname", "memail", "mpw", "mpwc");
for(i in x){
var error = h[i];
var div = divs[i];
if(x[i])==""){
document.getElementById(div).innerHTML = error;
}else{
document.getElementById(div).innerHTML = "OK!";
};
};
};
</script>
<form>
<table border="1">
<tr><td>First Name:</td><td><input type="text" name="name" id="name" /></td><td><div id ="mname"></div></td></tr>
<tr><td>Last Name:</td><td><input type="text" name="lname" id="lname"/></td><td><div id ="mlname"></div></td></tr>
<tr><td>Email:</td><td><input type="text" name="email" id="email"/></td><td><div id ="memail"></div></td></tr>
<tr><td>Password:</td><td><input type="text" name="pw" id="pw"/></td><td><div id ="mpw"></div></td></tr>
<tr><td>Confirm Password:</td><td><input type="text" name="pwc" id="pwc"/></td><td><div id ="mpwc"></div></td></tr>
</table>
<br />
<input type="button" name="submit" value="submit" onclick="register();" />
</form>
</body>
</html>
你犯了几个错误,一个在span字符串中,另一个在if语句中。休息看起来都很好!
检查这个小提琴:
http://jsfiddle.net/zog1h7f6/
function register(){
var x = new Array();
x[0] = document.getElementById('name').value;
x[1] = document.getElementById('lname').value;
x[2] = document.getElementById('email').value;
x[3] = document.getElementById('pw').value;
x[4] = document.getElementById('pwc').value;
var h = new Array();
h[0] = "<span style=color:red>Please type first name!</span>";
h[1] = "<span style=color:red>Please type last name!</span>";
h[2] = "<span style=color:red>Please type email!</span>";
h[3] = "<span style=color:red>Please type a password!</span>";
h[4] = "<span style=color:red>Please confirm password!</span>";
var divs = new Array("mname", "mlname", "memail", "mpw", "mpwc");
for(i in x){
var error = h[i];
var div = divs[i];
if(x[i]===''){
document.getElementById(div).innerHTML = error;
}else{
document.getElementById(div).innerHTML = "OK!";
};
};
};
我的建议是分小步进行;
- 检查是否首先调用
register()
函数。 - 在函数
register
中,尝试先获取一个元素值,例如通过执行、document.getElementById('name')
和测试在提交时是否获得一个值来获取一个元素值,id="name"
例如通过执行、和测试是否获得值。 - 尝试为div 设置一些值。我建议在chrome检查器控制台或Firefox检查器控制台中对此进行测试。例如,像
document.getElementById('mname').innerHtml = '<span>Testing this</span>'
- 一旦你习惯使用各个部分,你应该能够将它们串在一起。
尝试使用此脚本,我认为它更干净一点
<script type="text/javascript">
function register(){
var name = document.getElementById('name').value,
lName = document.getElementById('lname').value,
email = document.getElementById('email').value,
pw = document.getElementById('pw').value,
pwc = document.getElementById('pwc').value;
if(name !== '' && lName !== ''&& email !== '' && pw !== '' && pwc !== ''){
alert("succes");
}else{
alert("sorry fill all inputs");
}
};
</script>
您在定义错误消息时遇到语法错误:
var h = new Array();
h[0] = <span style="color:'red'>Please type first name!</span>";
h[1] = <span style="color:'red'>Please type last name!</span>";
h[2] = <span style="color:'red'>Please type email!</span>";
h[3] = <span style="color:'red'>Please type a password!</span>";
h[4] = <span style="color:'red'>Please confirm password!</span>";
您应该在引号之间交替(即将整个字符串包装在 ' 中并在内部使用 ",反之亦然),或者像这样对字符串中的双引号进行转义。
var h = new Array();
h[0] = "<span style='"color:red'">Please type first name!</span>";
h[1] = "<span style='"color:red'">Please type last name!</span>";
h[2] = "<span style='"color:red'">Please type email!</span>";
h[3] = "<span style='"color:red'">Please type a password!</span>";
h[4] = "<span style='"color:red'">Please confirm password!</span>";
相关文章:
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- Mailchimp内联表单验证不适用于JS加载的HTML
- 表单未使用 MVC 提交任何值 Asp.Net
- 如何通过ajax php将图像上传到服务器本地目录,其中html表单haven't任何传统的提交按钮
- 为什么在文本框内按回车键,单击第一个按钮并提交表单
- 试图检查表单中的值是否为一个设定范围内的数字
- 创建按钮不调用表单内的任何操作
- Javascript,表单中任何复选框的事件处理程序
- 如何禁用jqgrid中已发布行的内联和表单编辑
- angular js中嵌套ng include内的表单
- POST数据没有'不包含任何表单数据
- 内联表单的引导下拉菜单自动宽度
- 当用户使用jquery点击任何位置时,切换并隐藏登录表单
- 关注AngularJs中html表单内的第一个空输入
- ExtJS v3 - 从表单面板内的网格面板访问数据
- 表单标记内没有 jquery 事件正常工作
- 具有自动高度的表单面板内的复合字段
- Ionic框架——表单标签内的按钮
- 表单标签内的data-ui-toggle