根据使用的提交按钮验证表单

时间:2013-11-27 10:15:39

标签: javascript forms validation

所以,我有这个代码

<script>
    function validate(f) {
        var ok = true;
        if (f.id.value === '' || f.id.value === null) {
            ok = false;
        }
        return ok;
    }

    function validate2(f) {
        var ok = true;
        if (f.name.value === '' || f.name.value === null) {
            ok = false;
        }
        return ok;
    }
</script>

<form action="#" method="post">
    <input type="text" name="id"/>
    <input type="text" name="name"/>
    <input type="submit" name="send_id" value="Send ID"/>
    <input type="submit" name="send_name" value="Send Name"/>
</form>

如何根据使用的提交来验证表单? 我想执行validate();如果单击Send Id按钮,则如果我们使用另一个按钮则验证validate2()。

3 个答案:

答案 0 :(得分:0)

你可以这样做:

<form id="myForm" action="#" method="post">
    <input type="text" name="id"/>
    <input type="text" name="name"/>
    <input type="submit" name="send_id" value="Send ID" onclick="return validate();" />
    <input type="submit" name="send_name" value="Send Name" onclick="return validate2();" />
</form>

这样当函数返回false(意味着表单无效)时,提交就会中断。

手动获取f参数。

function getForm() {
    return document.getElementById("myForm");
}
function validate() {
    var f = getForm();
    var ok = true;
    if (f.id.value === '' || f.id.value === null) {
        ok = false;
    }
    return ok;
}

function validate2() {
    var f = getForm();
    var ok = true;
    if (f.name.value === '' || f.name.value === null) {
        ok = false;
    }
    return ok;
}

如上所示,您必须为表单提供ID。

答案 1 :(得分:0)

根据您的喜好设置checkValidate()或其他内容,并点击buttons

进行检查
<script>
    function checkValidate(buttonName) {
        if(buttonName == 'send_id'){
           return validate();
        }else{
            return validate2();
        }
    }

    function validate() {
        var ok = true;
        if (f.id.value === '' || f.id.value === null) {
            ok = false;
        }
        return ok;
    }

    function validate2() {
        var ok = true;
        if (f.name.value === '' || f.name.value === null) {
            ok = false;
        }
        return ok;
    }
</script>

<form action="#" method="post">
    <input type="text" name="id"/>
    <input type="text" name="name"/>
    <input type="submit" name="send_id" value="Send ID" onclick="return checkValidate(this.name)"/>
    <input type="submit" name="send_name" value="Send Name" onclick="return checkValidate(this.name)"/>
</form>

我希望它有所帮助...

答案 2 :(得分:-2)

没有经过测试..但是那样......

$( "input[name='send_id']" ).click(function(event) {
  event.preventDefault()
  validate();
  $("form").submit();
});
$( "input[name='send_name']" ).click(function(event) {
  event.preventDefault()
  validate2();
  $("form").submit();
});