0

我有一个问题,我有以下 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 调用: <input name="passphrase" type="text" id="passphrase" onfocus="clearDefault(this)" onblur="MM_callJS('checkEnableSubmit')" value="Nopass" />

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

4

1 回答 1

1

您的BothFieldsIdenticalCaseSensitive函数只能在字段 *passphrase_hidden* 和passphrase上工作。

如果您想检查另外两个字段,则必须为新字段创建另一个函数。例如,如果您创建了两个 ID 为 *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')。

于 2013-06-27T17:54:16.110 回答