【问题标题】:How to submit the form using javascript with "this"如何使用带有“this”的javascript提交表单
【发布时间】:2012-08-24 18:19:02
【问题描述】:

有什么方法可以提交我有这样的 href 链接的当前表单

<a href="javascript:;" onclick="this.submit();">Save</a>

我想在任何地方都使用相同的代码,所以我不能使用任何 id 或类

【问题讨论】:

  • 为什么要这样做?将代码放在单独的 javascript 文件中是一种很好的做法。是否有任何理由无法将标记与脚本分开?

标签: javascript forms submit


【解决方案1】:

你想要的是:

<a href="javascript:;"onclick="document.forms.<formname>.submit();">Save</a>

实际上,当&lt;formname&gt; 也被替换为表单的 id 时,它似乎也可以工作。

虽然我强烈建议你研究被称为Unobtrusive Javascript的做法

【讨论】:

    【解决方案2】:

    假设您的页面上有n 数量的表单。您可以使用以下方式提交i+1th 表单:

    document.forms[i].submit();
    

    因此,如果您只有一个,并且想在点击链接时提交,

    document.forms[0].submit();
    

    应该是你的 onclick 属性值

    【讨论】:

    • 但是我需要为每个 href 区分代码。我有大约 30 个文件,我正在将提交按钮替换为带有 shell 脚本的 href
    【解决方案3】:

    使用this.form.submit()提交表单

    即在你的情况下它会像

    <a href="#" onclick="this.form.submit();">Save</a>
    

    但强烈建议使用表单名称

    如果你习惯使用 jquery,你也可以使用 jquery closest 函数

    $(field).closest("form").submit();
    

    【讨论】:

    • 不,它不起作用:无法读取未定义的属性“提交”
    【解决方案4】:
    <a href="" onclick="!function(a){while(a&&a.nodeName!="FORM")a=a.parentNode;if(a)a.submit();}(this);"></a>
    

    【讨论】:

    • 正确代码是:&lt;a href="" onclick="!function(a){while(a&amp;&amp;a.nodeName!='FORM')a=a.parentNode;if(a)a.submit();}(this);"&gt;&lt;/a&gt;.
    【解决方案5】:

    你可以试试这个代码

    <a href="" onkeypress="submit(this.form)"/>
    <script>
        function submit(form) {
            form.submit();
        }
    </script>
    

    【讨论】:

      【解决方案6】:

      我将此解决方案用于未知表单名称:

      function submitForm(originator)
      {
          var pN=originator.parentNode;
          while (true)
          {
              if (pN&&pN.nodeName=='FORM')
              {
                  pN.submit();
                  break;
              }
              pN=pN.parentNode;
          }
      }
      

      现在我们可以在任何文档的对象事件上使用这个函数:

      <div onclick="doSomething();submitForm(this)">test</div>
      

      【讨论】:

        【解决方案7】:

        我使用更棘手的方法。 让你的按钮看起来像&lt;a href&gt;

        &lt;button type="submit" style="background-color: transparent!important;border: none;padding: 0!important;color: #3c8dbc;cursor: pointer;box-sizing: border-box;"&gt;MY LINK BUTTON&lt;/button&gt;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-08
          • 2016-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多