使用javascript检查两个字段是否具有相同的值
使用javascript检查两个字段是否具有相同的值,javascript,html,Javascript,Html,我想做一个注册表单,表单应该有两个密码字段,所以没有混淆。 因此,如果密码相同,则字段右侧应有一个绿色块,如果没有,则应有一个红十字。 这是我的测试代码,但它不起作用 <script language="javascript" type="text/javascript"> function check() { var loc; if (test.name1.value == test.name2.value) { loc = "/img/green
我想做一个注册表单,表单应该有两个密码字段,所以没有混淆。
因此,如果密码相同,则字段右侧应有一个绿色块,如果没有,则应有一个红十字。
这是我的测试代码,但它不起作用
<script language="javascript" type="text/javascript">
function check()
{
var loc;
if (test.name1.value == test.name2.value) {
loc = "/img/greenbock.jpg";
}
if (test.name1.value != test.name2.value) {
loc = "/img/redcross.jpg";
}
return loc;
}
</script>
</head>
<body>
<form name="test" method="post" action="">
Name<br />
<input name="name1" type="text" /><br />
Name agian<br />
<input name="name2" type="text" onblur="check()" />
<script language="javascript" type="text/javascript">
if(loc != "")
{
document.write("<div style=\"height:19px; width:20px; background-image:url("+ loc + ")\"></div>");
}
</script>
<br />
Username<br />
<input name="username" type="text" /><br />
函数检查()
{
var-loc;
if(test.name1.value==test.name2.value){
loc=“/img/greenbock.jpg”;
}
if(test.name1.value!=test.name2.value){
loc=“/img/redcross.jpg”;
}
返回loc;
}
名称
名称agian
如果(loc!=“”)
{
文件。填写(“”);
}
用户名
那么我错在哪里呢?一点小毛病,还是我应该把所有的东西都抹掉
[编辑]
现在我已经设置了check函数,以便在输入后运行脚本。所以现在它也在做同样的事情,因为一切都会消失。。解决方案?试试这个,
document.test.name1.value
或document.forms[“test”][“name1”].value
而不是test.name1.value
应该是
var loc;
var name1=document.forms["test"]["name1"].value;
var name2=document.forms["test"]["name2"].value;
if(name1== name2){
loc = "/img/greenbock.jpg";
}else {
loc = "/img/redcross.jpg";
}
我的建议是使用CSS控制错误/成功图像的样式。然后,验证函数可以决定将哪个CSS类分配给位于输入字段旁边的
此外,如果用户稍后返回任一字段并进行更改,则需要将check()
添加到其他名称输入中
CSS
HTML
当然,这比以前的代码多得多,但是您可以很容易地将其转换为可重用的函数
您是否检查了浏览器控制台中的错误?这几乎是您应该做的第一件事。
check()
可能应该负责用图像绘制div。现在,您将永远看不到图像,因为在check()
运行之前,输入字段下面的脚本已经运行过了。
/* Shared styling */
.validation-image {
height:19px;
width:20px;
display: none;
}
/* Error styling */
.validation-error {
background-color: #ff0000;
background-image: url('/img/redcross.jpg');
}
/* Success styling */
.validation-success {
background-color: #00ff00;
background-image: url('/img/greenbock.jpg');
}
<form name="test" method="post" action="">Name
<br />
<input name="name1" type="text" onblur="checkNames()" />
<br />Name agian
<br />
<input name="name2" type="text" onblur="checkNames()" />
<div id="nameValidation" class="validation-image"></div>
<br />Username
<br />
<input name="username" type="text" />
<br />
</form>
function checkNames() {
// Find the validation image div
var validationElement = document.getElementById('nameValidation');
// Get the form values
var name1 = document.forms["test"]["name1"].value;
var name2 = document.forms["test"]["name2"].value;
// Reset the validation element styles
validationElement.style.display = 'none';
validationElement.className = 'validation-image';
// Check if name2 isn't null or undefined or empty
if (name2) {
// Show the validation element
validationElement.style.display = 'inline-block';
// Choose which class to add to the element
validationElement.className +=
(name1 == name2 ? ' validation-success' : ' validation-error');
}
}