<input type =“submit”name =“submit”value =“Submit”class =“btnSubmit”onclick =“validatePassword()”/> Javascript函数不起作用?

时间:2014-09-11 13:48:21

标签: javascript

我使用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()">

如果newpasswordconfirmpassword不一样,我想显示一条消息。 我在这段代码中错在哪里?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无法使用innerHTML来更改文本框的内容,因为它不包含任何HTML,例如DIVSPAN或类似内容。它被称为"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/