我在一个启示来的一天。当试图通过使用图像创建一个提交按钮,我跑进了未显示图像的问题,但value文本了。在当时,这不是我想要的东西,但现在,当我回头看,我看到一些这方面的潜在用途。

如果需要将数据发送到另一页,但它没有一个需要用户输入,既可以在链路(或形式)经由GET或通过经由POST形式发送它。问题在于,前者产生难看的URL,而后者需要submit按钮,看起来格格不入。当然,我能想出的图像,但如果我只是想选择的文本内容。

于是,我开始了一下周围玩耍和Firefox似乎呈现以下我如何渴望,作为提交表单可点击的链接。所有你需要做的就是从src标签取下input type='image'属性:

<form action='some_page' method='post'>
  <input type='hidden' name='email_address' value='test@test.com' />
  <input type='image' value='E-mail User' />
</form>

是否在其他浏览器这个解决方案的工作?哪些缺点(从明显的事实,你的链接CSS不正确应用除外)?

操作
有帮助吗?

解决方案

我喜欢使用的实际链路(隐藏),该获取通过JavaScript暴露结合noscript标记内的按钮的溶液中。

 <form action="some_page" method="post">
    <input type="hidden" name="email_address" value="test@test.com" />
    <a href="#" class="submit-link" style="display: none;">E-mail User</a>
    <noscript>
       <input type="submit" value="E-mail User" />
    </noscript>
 </form>

 $('submit-link').click( function() {
     $(this).closest('form').submit();
     return false;
 })
 .show();

其他提示

有没有必要使用图像输入,为什么不使用常规的提交按钮,应用一些严厉的造型,使其看起来像普通的文字?

<input type="submit" value="E-mail User" class="link">

<style>
input.link {
    border: none;
    background: none;
    cursor: pointer;
    /* etc */
}
</style>

使用HTML 4.01严格它制作FF3.5,但不能在IE8或铬。该链接的作品,但没有文字只是一个空白点的缺失图像。

所以,这似乎是一个坏主意,因为它可能只在一个浏览器中运行。对我来说,是一个相当大的缺点,除非你的唯一市场是Firefox浏览器,然后,继续前进,伟大的想法。 :)

正如詹姆斯斯基德莫尔建议的,它是很容易做到一个onclick与JavaScript提交它作为后。

我建议不显眼的JS,所以,如果有人没有JS上,然后它会工作为纽带,做一个GET提交,但如果他们有JS那么这将改变行为是POST没有丑陋的网址变化

或者,正如所提到的图像的背景可以用形式背景融为一体。

您可以改为动态地提交表单经由JS,或使用具有透明或白色背景上的定期提交按钮。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top