【问题标题】:Non-JS trigger click event on <input type=checkbox> when <button type=submit> clicked当 <button type=submit> 单击时,非 JS 在 <input type=checkbox> 上触发单击事件
【发布时间】:2021-01-22 01:52:14
【问题描述】:

我有一个带有 &lt;button type="submit"&gt; 的表单,我正在寻找一种非 JS 方式来触发隐藏/显示上的点击事件:当单击该按钮时,没有 &lt;input type="checkbox"&gt;。

我的第一个想法是这样的

<form>
  <label>
    <input type="checkbox" name="all" style="display:none;"/>
    <button type="submit">I want everything</button>
  <label>
  ... checkboxes ...
  ... submit selected items ...
</form>

但正如您在下面的 JSFiddle 中看到的那样,当您单击按钮时,会触发按钮单击事件,然后会发生标签单击,但不会发生输入单击。

JS 小提琴:

http://jsfiddle.net/yqat20xp/42/

我想知道是否有非 JS 方法可以做到这一点。基本上我想要的是取消选中&lt;input type="checkbox"&gt;,但如果点击了&lt;button type="submit"&gt;,我希望表单数据注册该复选框已选中。

这背后的原因是我有一个带有多个复选框的表单,“我想要一切!”提交的按钮,以及一个常规的提交按钮,供想要检查部分但不是全部复选框的用户使用。

在后端,我希望看到用户提交了“我想要一切”按钮,或者他们选择了一些选项并单击了常规的“提交所选”按钮。后端是封闭的,所以我必须传入一个检查过的&lt;input type="checkbox"&gt;。此外,我可以传入一个 &lt;input type="radio"&gt; 来指示按下了哪个按钮。

这可以不用JS吗?

【问题讨论】:

    标签: html form-submit forms


    【解决方案1】:

    简化您的问题:

    您只想知道点击了哪个按钮。因此,只需为这些按钮分配不同的值。

    <button type="submit" name="btn_submit" value="all">i want everything</button>
    <button type="submit" name="btn_submit" value="some">only checked</button>
    

    在您的服务器脚本中,您现在可以检查单击了哪个按钮

    【讨论】:

    • 我希望可以!不幸的是,我被锁定在仅注册复选框和单选按钮的当前实现中:/
    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2015-11-14
    • 2016-12-07
    • 2013-12-13
    • 2012-09-28
    • 2010-12-20
    相关资源
    最近更新 更多