一个提交按钮需要一种表单中的输入字段,但其他按钮则不需要?

Jan*_*sta 5 html php forms validation jquery

如何区分一种表单中提交按钮的两个单独操作,其中一个将数据保存到数据库中(按原样),另一个将表单作为有效请求提交,>>但是<< 根据HTML5 本机验证(我使用“必需” “ HTML 形式的属性)?

我的表单有 66 个字段,我不想在提交后在 PHP 中验证它们(因为这太麻烦和耗时),或者在提交前在 JS中验证它们(因为我在 JS 中不那么敏捷,就像在 PHP 中一样) ),所以我在 HTML5 中使用“required”和“type”属性,这是非常方便且非常通用的验证方式(除了旧浏览器之外)。但是,当使用“保存”按钮但不使用“发送以提交”按钮时,我找不到绕过“必需”属性的简单方法。您能帮忙提出解决方案吗?我想首选的方法是某种 JS/jQuery 方法,因为我无法确定在点击按钮之前将使用哪个按钮(这样我就可以将字段设置为必填或非必填)。

示例代码:

<form>
A: <input type="text" name="A" required />
B: <input type="text" name="B" required />
C: <input type="text" name="C" />
<input type="submit" name="save" value="Save"> <!--do not require anything-->
<input type="submit" name="send" value="Send  for submission"> <!-- require everything-->
</form>
Run Code Online (Sandbox Code Playgroud)

当然,我的表单很大,因为它有 66 个字段,所以这里最好的解决方案可能是通用的和通用的。

Jan*_*sta 3

我最终想出了这样的东西。HTML:

<input type="submit" name="save" value="Save" onClick="removeRequired(this.form)">
Run Code Online (Sandbox Code Playgroud)

JS(使用 jQuery):

function removeRequired(form){
    $.each(form, function(key, value) {
        if ( value.hasAttribute("required")){
            value.removeAttribute("required");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这是经过测试并且有效的。它有一个很好的属性,我可以将函数保留在文件中的其他位置,而不是抓住正在执行它的 php/html。我想要的唯一改进(可能其他人也会感兴趣)是消除 jQuery,因为它仅用于浏览表单中的每个输入元素,这对于纯 JS 来说似乎很容易。然而我找不到一个简单的方法,并且用完了时间并在上面使用了 jQuery。谢谢