创建/放置锚<a href=""> within an <input/> field</a>

时间:2014-04-09 20:51:30

标签: html input anchor href

有没有办法允许输入字段中的链接,以便该字段中的任何文字都可点击且可操作?

1 个答案:

答案 0 :(得分:2)

遗憾的是,这不适用于HTML 4或更低版本。即使HTML5有几个新的输入类型,包括URL,它只进行验证,并具有一些其他有用的功能,但不会给你想要你想要的。

您可能会寻找一些可以帮助您实现此目的的jQuery插件,大多数使用Rich Text或其他在线/基于Web的HTML WYSIWYG编辑器后面的相同主体。我自己找不到它们有困难。

这三种情况(我现在能想到的)几乎就是HTML4或更低版本的本地特征,因为实际的HTML4 INPUT文本框中的文本是纯文本。它不是HTML,因此不可点击。以下是一些变体:

  1. INPUT标记的VALUE属性,也称为相应的DOM对象&#34;值&#34;属性(这基本上就是你一直在做的,也是你所希望的最多,如果你决定你必须在文本框中有实际的文本(因为文本框内的文本是VALUE)属性,正如我在这个例子中使用&#34; http://yahoo.com&#34;:

        <input id="myTxtbox" type="text" value="http://yahoo.com">
    

    INPUT的值=&#34; http://yahoo.com&#34;,您可以通过以下方式检索:

      纯粹的javascript中的
    • document.getElementById("myTxtbox").value

    • jQuery中的
    • $("myTxtBox").val()

  2. 当您的链接/网址是<INPUT></INPUT>之间的文本时,即文本框的text / innerText。这对您的问题/场景没用,因为它不可点击,更重要的是不在文本框中。但是,有人可能希望使用此功能来检索您可能用作标签的任何文字(如果您未使用<label>标签本身):

    <input id="myTxtbox" type="text">
      http://yahoo.com
    </input>
    

    textbox的text / innerText不是这里的属性,只是一个DOM对象属性,但仍可以检索:

    • 纯javascript:

      document.getElementById("myTxtbox").innerText

    • jQuery:

      $("myTxtBox").text() - 您可以使用它来捕获您可能用作标签的任何文字(如果您不使用该标签)。

    结果是:http://yahoo.com

  3. 当您的链接/网址是主持人(<A>)的形式时,您的网址(以及可见的链接文字)位于<INPUT></INPUT>之间的HREF ,即文本框的innerHTML。这更接近您想要的,因为链接将显示为,并作为实际链接。但是,它不会在文本框内。它将与示例#2一样。同样,如示例#1中所述,您不能拥有实际工作的HTML,因此无法使用正常工作的链接&#39;在文本框内:

    <input id="myTxtbox" type="text">
      <a href="http://yahoo.com">
        http://yahoo.com
      </a>
    </input>
    

    再次,类似于示例#2,文本框的innerHTML不是此处的属性,只是DOM对象属性,但仍可以检索:

    • 纯javascript:

      document.getElementById("myTxtbox").innerHTML

    • jQuery:

      $("myTxtBox").html()

    结果是:<a href="http://yahoo.com">http://yahoo.com</a>