如何插入指向输入文本框的活动链接


How to insert an active link to an input textbox?

是否可以插入指向输入文本框的活动链接?

我尝试在 html 的值中使用 <a> 标签,但它不起作用。

<?php $email = "<a href='"example@link.com'">example@link.com </a>"; ?>   
<input type="text" id="email" name="email" value="<?php echo $email; ?>">  

它只返回没有超链接值的文本。

这里有几件事是错误的...

  1. 你没有逃脱你的报价。 因此,PHP 无效。
  2. 您正在尝试将 HTML 放入属性中,这也是无效的。

我能看到这里使用的唯一替代方案是应用了contenteditable="true"的 HTML 元素。 这使得一个元素(比如说一个<div>(可以修改它的内容。

<?php $email = "<a href='"example@link.com'">example@link.com </a>"; ?>   
<div id="fake-email" contenteditable="true"><?php echo $email; ?></div>

然后,如果您正在制作表单,请参阅此相关问题。

编辑:

如果您正在尝试制作表单,那么这是一个例子:

document.getElementById("form").onsubmit = function(){
    document.getElementById("email").value =  
    document.getElementById("fake-email").innerText || document.getElementById("fake-email").textContent;
}

而您的表单是:

<form action="..." method="..." id="form">
   <div id="fake-email" contenteditable="true"></div>
   <input type="hidden" id="email" name="email" />
</form>

不,这是不可能的。输入值将始终呈现为纯文本。如果用户不需要编辑链接,我会把它放在输入旁边。

否则,您可能需要查看所见即所得的编辑器。链接到下面最受欢迎的两个。

TinyMCE

CKEditor

php 变量中包含引号时,您需要对其进行转义。

<?php $email = "<a href='"example@link.com'">example@link.com </a>"; ?> 

使用双引号时需要使用反斜杠。

或者,您可以这样写:

 <?php $email = '<a href="example@link.com">example@link.com </a>'; ?> 

如果以单引号开头,则无需转义双引号。

我强烈建议您在需要时阅读转义字符。