【问题标题】:i want a anchor should act like and input type submit button我想要一个锚应该像输入类型提交按钮一样
【发布时间】:2011-05-22 08:21:50
【问题描述】:

我想要一个锚点应该像输入类型提交按钮一样。 我正在使用一个实际使用输入类型提交的 jquery 插件库,但我在锚点上设置了我的按钮样式。我不想用

<input type="button">

<input type="submit">

我想使用诸如

之类的锚点
<a href="javascript to submit the form" ></a>

这是我想要使用的 jquery 代码

 {
     var submit = $('<button type="submit" />');
     submit.html(settings.submit);                            
 }
 $(this).append(submit);
 }
 if (settings.cancel) {
     /* if given html string use that */
     if (settings.cancel.match(/>$/)) {
         var cancel = $(settings.cancel);
         /* otherwise use button with given string as text */
     } else {
         var cancel = $('<button type="cancel" />');

如何使用锚点代替按钮。

【问题讨论】:

  • 不知何故您的 JS 代码不完整。将按钮样式化为更好的 IMO 中的锚点,因为如果禁用 JS,您的代码也将起作用。但无论如何,&lt;button type="submit" /&gt; 是错误的。 &lt;button&gt; 是一个通用按钮元素,它没有类型属性,您必须将事件处理程序绑定到它,以便它执行某些操作。你应该总是选择最接近你想要的元素,而不是它看起来的样子(这就是CSS的用途)。
  • $('a').click(function() {$('form').submit()});
  • 我知道。实际上我只是展示了一个代码示例。告诉我如何使用锚而不是
  • @Felix - “&lt;button&gt; 是一个通用按钮元素,它没有类型属性..”。你知道吗,见dev.w3.org/html5/spec/the-button-element.html#attr-button-typew3.org/TR/html4/interact/forms.html#adef-type-BUTTON

标签: javascript html


【解决方案1】:

如果你想让一个锚标签像一个按钮,那么就这样做

<!--YOUR FORM-->
<form id="submit_this">.....</form>
<a id="fakeanchor" href="#"></a>

<script>
    $("a#fakeanchor").click(function()
    {
    $("#submit_this").submit();
    return false;
    });
</script>

【讨论】:

  • 这在不久的将来也很有用:)。谢谢 :)
  • 在输入标签上,有时我会使用输入元素上的“名称”属性来指定我想要执行的操作。如果我将您的代码 sn-p 与锚标记一起使用,我将如何在提交时提高该值?
【解决方案2】:

由于您使用的是jQuery,只需使用$() 选择form 元素,然后在其上调用submit;通过$() 将所有这些连接到锚点以找到锚点并通过click 连接处理程序:

$("selector_for_the_anchor").click(function() {
    $("selector_for_the_form").submit();
    return false;
});

可能最好return false;取消对锚点的点击。


题外话:但请注意,这会使您的页面在没有 JavaScript 的情况下完全无法使用,并且即使对于需要辅助技术(屏幕阅读器等)的用户使用的支持 JavaScript 的浏览器也会造成混乱。 .它使标记完全没有语义。不过既然你说的很清楚,那就是你想做的……

【讨论】:

    【解决方案3】:
    <a id='anchor' href="javascript to submit the form" ></a>
    

    现在您可以使用 jquery 添加事件处理程序

    $('#anchor').click(function (e) {
      // do some work
    
     // prevent the default anchor behaviour
     e.preventDefault();
    })
    

    现在您可以根据需要设置锚点样式,它将充当常规按钮

    【讨论】:

      【解决方案4】:

      然后呢:

      <form id="formOne">
              ...
         <a href="..." onclick="formOne.submit()">link here</a>
      </form>
      

      【讨论】:

        【解决方案5】:

        您可以使用图像类型的输入(它作为表单的提交按钮)或在 jquery 中:

        $("a").click(function(event){
           event.preventDefault();
           $('form').submit();
        })
        

        【讨论】:

        • 所有主播应该提交所有表格吗? ;-)
        • 不,这只是一个例子。我没有水晶球知道 OP 有什么 id 或类名......
        • 如果没有 something 说明选择器的作用,这是相当具有误导性的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-22
        • 1970-01-01
        • 2016-10-27
        • 2021-05-20
        • 1970-01-01
        相关资源
        最近更新 更多