Javascript比较并验证两个文本字段

时间:2013-06-27 17:27:06

标签: javascript

我有一个问题,我有以下javascript函数:

<script type="text/javascript">
<!--
function BothFieldsIdenticalCaseSensitive() {
    var two = document.bid_deal.passphrase_hidden.value;
    var three = document.bid_deal.passphrase.value;
    if(two == three) { return true; }
    alert("Warning!! passcodes must match!!!");
    return false;
}
//-->
</script>

我用它来比较两个文本字段,以确保两个文本字段匹配。它适用于一组文本文件,但如果我添加另一组文本字段并运行相同功能的另一个实例,则拒绝工作。

我有一个调用javascript函数调用checkEnableSubmit执行操作但我不知道为什么它不适用于多组文本字段。然而,我注意到页面中的两个调用javascript行为都调用了checkEnableSubmit的相同名称。如果我更改名称,则停止工作。

这是JAVASCRIPT CALL:     <input name="passphrase" type="text" id="passphrase" onfocus="clearDefault(this)" onblur="MM_callJS('checkEnableSubmit')" value="Nopass" />

我需要实现这个脚本来为我的文本字段添加验证,请大家帮忙!!!!

1 个答案:

答案 0 :(得分:1)

您的 BothFieldsIdenticalCaseSensitive 功能只能用于字段* passphrase_hidden *和密码

如果要检查另外两个字段,则必须为新字段创建另一个函数。例如,如果您创建了两个带有ids * passphrase_hidden1 *和 passphrase1 的字段,那么您可以使用此函数来验证其输入...

function BothFieldsIdenticalCaseSensitive2() {
    var two = document.getElementById('passphrase_hidden1').value;
    var three = document.getElementById('passphrase1').value;
    if(two == three) { return true; }
    alert("Warning!! passcodes must match!!!");
    return false;
}

你可以尝试的另一个选项是创建一个单独的函数,并在该函数中传递你要检查的两个字段,如下所示:

function BothFieldsIdenticalCaseSensitive(fieldId1, fieldId2) {
    var two = document.getElementById(fieldId1).value;
    var three = document.getElementById(fieldId2).value;
    if(two == three) { return true; }
    alert("Warning!! passcodes must match!!!");
    return false;
}

修改

您不应该使用此语法document.bid_deal.passphrase_hidden引用您的字段,并非所有浏览器都实现此字段。适用于所有浏览器的标准方法是调用document.getElementById('passphrase_hidden')。