【问题标题】:Change form parameter based on form selection根据表单选择更改表单参数
【发布时间】:2020-08-22 02:26:35
【问题描述】:

我在一个页面上有 3 种不同的表单,用户可以在使用 JS 之间切换。这些表单代表不同的信息,一次只能提交一个,然后根据他们选择的表单将用户重定向到不同的页面。问题是我有两个这些表单共有的输入字段,因此它们在表单之外。如果我设置了,我可以将它们与表单一起提交:

<input id="default" form="form1"> 

价值。

所以我认为只需在每个脚本中添加一个函数即可隐藏/显示表单以将该参数更改为我想要提交的表单,但这似乎不起作用。

function form2Search() {
        $('#form2Section').show();
        var input1 = document.getElementById('default');
        input1.form = "form2";
    }

我有这样的东西,但它不会改变表单参数。

【问题讨论】:

    标签: javascript html jquery ecmascript-6


    【解决方案1】:

    您实际上需要为您的输入提供default 的 ID,以便您可以定位它:

    <input form="form1" id="default">
    

    【讨论】:

      【解决方案2】:

      使用设置属性

      function form2Search() {
              $('#form2Section').show();
              var input1 = document.getElementById('default');
              input1.setAttribute("form", "form2");
              console.log(input1.getAttribute("form"))
          }
          
          form2Search();
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <input id="default" form="form1">

      【讨论】:

      • input1.form = 'form2' 很好,在 vanilla JS 中,奇怪的是 OP 正在与 jQuery 混合(这些天我不会使用)
      • 然后解释一下为什么这不起作用jsfiddle.net/abj9kz5x
      • 你不能附加任何这样的属性。你应该知道这一点。您只能对已知属性执行这些操作,例如样式、宽度、高度 @StackSlave
      • 我猜它的使用还不够,以至于他们没有达到正常的网络标准。 Element.attribute = 应该始终有效。我将考虑这是浏览器开发人员应该解决的问题。
      猜你喜欢
      • 2020-11-15
      • 1970-01-01
      • 2014-05-03
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多