我使用javascript来匹配两个文本框值,但我的功能不起作用。
这是我的代码:
<script>
function validatePassword() {
var newPassword = document.getElementById('newPasswordTB').value;
var confirmPassword =document.getElementById('confirmPasswordTB').value;
if(newPassword != confirmPassword) {
newPassword.value="";
confirmPassword.value="";
document.getElementById('newPasswordTB').focus();
document.getElementById("confirmPasswordTB").innerHTML = "not same";
}
}
</script>
<label>New Password</label>
<input type="password" name="newPassword" id="newPasswordTB" class="txtField"/><span id="newPassword" class="required"></span>
<label>Confirm Password</label>
<input type="password" name="confirmPassword" id="confirmPasswordTB" class="txtField"/><span id="confirmPassword" class="required"></span>
<input type="submit" name="submit" value="Submit" class="btnSubmit" onclick="validatePassword()">
如果newpassword
和confirmpassword
不一样,我想显示一条消息。
我在这段代码中错在哪里?
任何帮助将不胜感激。
答案 0 :(得分:0)
您无法使用innerHTML
来更改文本框的内容,因为它不包含任何HTML,例如DIV
,SPAN
或类似内容。它被称为"void"元素。它也是一个密码,所以如果你在其中放入一个值,用户将无法看到它。你应该把你的信息放在任何其他地方。例如,在confirmPasswordTB输入旁边的SPAN
元素中:
function validatePassword() {
var newPassword = document.getElementById('newPasswordTB').value;
var confirmPassword =document.getElementById('confirmPasswordTB').value;
if(newPassword != confirmPassword) {
newPassword.value="";
confirmPassword.value="";
document.getElementById('newPasswordTB').focus();
document.getElementById("confirmPassword").innerHTML = "not same"; //Setting message in the SPAN tag
}
}
你可以检查它在这个小提琴中工作:http://jsfiddle.net/w8dt0dnr/1/