php - 一个提交按钮需要一种形式的输入字段,但其他按钮不需要?

标签 php jquery html forms validation

我如何区分一种表单中提交按钮的两个单独操作,一个将数据保存到数据库(按原样),另一个将表单作为有效请求提交,>>但是<<根据HTML5 native验证(我在 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>

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

最佳答案

这样的事情可能会让你开始:

$('#sub1').click(function() {
  $('[name=A]').removeAttr('required');
  $('[name=B]').removeAttr('required');
  $('form').append('<input type="hidden" name="save" />');
  $('form').submit();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  A: <input type="text" name="A" required /><br>
  B: <input type="text" name="B" required /><br>
  C: <input type="text" name="C" /><br>
  <input id="sub1" type="button" name="save" value="Save">
  <!--do not require anything-->
  <input type="submit" name="send" value="Send  for submission">
  <!-- require everything-->
</form>

关于php - 一个提交按钮需要一种形式的输入字段,但其他按钮不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38028965/

相关文章:

asp.net - HTML5 离线存储 - session 的替代方案?

php - 如何在页面上没有提交按钮的情况下调用JS/ajax?

html - 多行容器展开动画

php - Asterisk AMI AGI通知PHP脚本

php,如何简化一个php脚本?

php - 我应该将 $mysqli 变量传递给每个函数吗?

javascript - 如果在 Bootstrap Popover 中,下拉菜单不会选择

php - 如果结果匹配,则将 MySQL 结果限制为一个

jquery - 如何从类(class)获取id

javascript - javascript 中的纯数字文本框验证