检查两个表单域

时间:2011-02-28 06:16:02

标签: javascript

喜 我想要两个检查两个字段 如果两个字段的值相同,那么它显示一条消息,我有一个代码但是

它不起作用你能告诉我这段代码的用途吗

<script type="text/javascript">
function checkForm(form1){
    if(form1.field1.value == form1.field2.value ){
        alert(" values are identical");
        form1.field1.focus();
        return true;
    }else{
        return false;
    }
}
</script>
<form name="form1" method="POST" action="" >
<input type="text" name="field1">
<input type="text" name="field2">
<input type="submit" onClick="return checkform1(this);" >
</form>

4 个答案:

答案 0 :(得分:4)

像这样改变你的if条件

if(document.form1.field1.value==document.form1.field2.value)

答案 1 :(得分:2)

您正在呼叫checkform(),但这并未在任何地方定义。此外,checkform1(this)使用按钮作为元素form1,这会将所有内容搞砸。使用this.parentNode,它将表单作为参数传递。

这是一些有效的代码:

<script>
    function checkForm(form1) {
    if (form1.field1.value == form1.field2.value) {
        alert(" values are identical");
        form1.field1.focus();
        return true;

    } else {
        return false;
    }
}
</script>

<form name="form1" method="POST" action="" >
    <input type="text" name="field1">
    <input type="text" name="field2">
    <input type="submit" onClick="return checkForm(this.parentNode);" >
</form>

答案 2 :(得分:0)

您需要在表单选择前添加document.。并且您的方法名称与您从点击事件中调用的方法有误。

我已修复它并在此处添加了一个示例:http://jsfiddle.net/jomanlk/Fu2wJ/1/

function checkForm(form1) {
    if (document.form1.field1.value == document.form1.field2.value) {
        alert(" values are identical");
        document.form1.field1.focus();
        return false;


    }
    else {
        return true;
    }
}
<form  name="form1" method="POST" action="" >
    <input type="text" name="field1">
    <input type="text" name="field2">
    <input type="submit" onClick="return checkForm();" >
</form>

答案 3 :(得分:0)

除了checkForm1功能不存在之外,主要问题在于

<input type="submit" onClick="return checkform1(this);" >

此处this指的是input,而不是form

要使代码正常工作,请将函数名称更改为checkForm

<input type="submit" onClick="return checkform1(this.form);" >