我希望一个锚点能够像提交按钮一样起作用。

6
我希望可以将锚点的行为变得像提交按钮一样。 我正在使用一个jQuery插件库,实际上是使用输入类型提交按钮,但我已经对我的锚点进行了样式设置。我不想使用
<input type="button">

或者
<input type="submit">

i want to use anchors such as

<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" />');

如何使用锚点代替按钮。


2
你的JS代码似乎不完整。在我看来,将按钮样式设置为锚元素更好,因为如果禁用JS,你的代码仍将起作用。但无论如何,“<button type =“submit”/>”是错误的。 <button>是一个通用的按钮元素,它没有类型属性,您必须将事件处理程序绑定到它上面,以便它执行某些操作。您应该始终选择最接近所需功能的元素,而不是外观(这就是CSS的作用)。 - Felix Kling
2
$('a').click(function() {$('form').submit()}); - pimvdb
我知道。其实我只是展示了一段代码示例。请告诉我如何使用锚点(anchor)而不是<button type="submit" />。 - Mossawir Ahmed
1
@Felix - “<button>是一个通用的按钮元素,它没有类型属性..” 但事实上它是有的,请参见http://dev.w3.org/html5/spec/the-button-element.html#attr-button-type和http://www.w3.org/TR/html4/interact/forms.html#adef-type-BUTTON。 - Alohci
5个回答

16
如果你想让一个锚点标签像一个按钮一样起作用,只需这样做。
<!--YOUR FORM-->
<form id="submit_this">.....</form>
<a id="fakeanchor" href="#"></a>

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

这在不久的将来也非常有用。谢谢 :) - Mossawir Ahmed
在输入标签上,有时我会在输入元素上使用'name'属性来指定我想执行的动作。如果我使用您的代码片段与锚点标签,当提交时我该如何将该值上传? - Ciaran Gallagher

3

既然您正在使用jQuery,只需使用$()选择form元素,并在其上调用submit;通过$()找到锚点并使用click将所有这些挂钩到锚点上:

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

最好使用return false;来取消对锚点的点击。


离题: 但请注意,这会使您的页面在没有JavaScript的情况下完全无法使用,而且即使是使用辅助技术的用户(屏幕阅读器等)使用JavaScript启用的浏览器也容易造成混淆。 这使得标记完全不语义化。 但是,既然您已经很清楚地说明了这就是您想要做的...


2
<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();
})

现在,您可以根据自己的喜好设置锚点样式,并使其像常规按钮一样工作。

2

还有什么需要翻译的内容吗:

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

1

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

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

所有锚点都应该提交所有表单?;-) - T.J. Crowder
1
不,这只是一个例子。我没有水晶球知道OP有什么ID或类名。 - Headshota
没有任何东西说明选择器的作用,这是相当误导的。 - T.J. Crowder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接