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

Javascript 根据使用的提交按钮验证表单,javascript,forms,validation,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;

所以,我有这个代码

<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>

函数验证(f){
var-ok=true;
如果(f.id.value==''| | f.id.value===null){
ok=假;
}
返回ok;
}
函数2(f){
var-ok=true;
如果(f.name.value==''| | f.name.value===null){
ok=假;
}
返回ok;
}
如何根据使用的提交来验证表单? 我想执行validate();如果单击“发送Id”按钮并验证2(),如果我们使用另一个按钮。

您可以执行以下操作:

<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>

您必须如上所示为表单提供一个id。

具有另一个功能,如
checkValidate()
或其他您喜欢的功能,然后单击两个
按钮进行检查

<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>

功能检查验证(按钮名称){
如果(buttonName=='send_id'){
返回validate();
}否则{
返回validate2();
}
}
函数验证(){
var-ok=true;
如果(f.id.value==''| | f.id.value===null){
ok=假;
}
返回ok;
}
函数validate2(){
var-ok=true;
如果(f.name.value==''| | f.name.value===null){
ok=假;
}
返回ok;
}

我希望它有帮助……

未经测试。。但是像这样的事情

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

验证函数时,什么是参数
f
?为什么不能只生成两种不同的形式?参数f是形式本身,我无法生成两种不同的形式,因为我无法嵌套它们。谢谢,这就是我一直在寻找的东西。您是否测试了它?我可以猜测,如果您不返回由
checkValidate
返回的值,即使表单无效,也会发生提交。检查下面我的答案。
onclick=“return checkValidate(this.name)”
而不是
onclick=“checkValidate(this.name)”
不,我甚至没有测试它,我使用了你的答案谢谢,这比我认为OP不使用jQuery更简单
$( "input[name='send_id']" ).click(function(event) {
  event.preventDefault()
  validate();
  $("form").submit();
});
$( "input[name='send_name']" ).click(function(event) {
  event.preventDefault()
  validate2();
  $("form").submit();
});