创建一个写入文本区域(php)的输入框

Create a inputbox which writes to textarea(php)

本文关键字:php 区域 输入 文本 一个 创建      更新时间:2023-09-26

只是为了好玩,我为我的一个学校班级创建了一个聊天室。我想要的是一个JavaScript,一旦按下一个按钮(添加url),就会弹出一个输入框,用户可以在其中粘贴一个url,然后将其写入文本区域。

我希望此功能只是为了让"http://"放在添加的 url 前面。

一直在尝试使用这个脚本(对我来说看起来是正确的......但它不起作用)

<input type="button" id="s_5" onclick="addUrl()">
<script>
function addUrl()
{
var x;
var nettside=prompt("Type in URL:","www.example.com");
if (nettside!=null)
  {
  x="http://" + nettside + ";
  document.getElementById("area").innerHTML=x;
  }
}
</script>

是的,它应该写入的文本区域:

<textarea name="txt" id="area" class="typo_vind" placeholder="......" autofocus title="Type your message here, have a great day!"></textarea>

编辑

.HTML:

<input type="button" id="s_5" onclick="javascript:formatText(addUrl())">

.JS:

<script>
function addUrl()
{
var x;
var nettside=prompt("Skriv inn lenkeadressen her:","www.testtest.com");
if (nettside!="")
  {
  x="<a href="+"http://" + nettside + ">" + "BESKRIVELSE AV LENKEN" + "</a>";
  document.getElementById("area").value=x;
  }
}
</script>

仍然存在两个问题。

  1. 我不希望该脚本清理文本区域
  2. 我不希望<undefined></undefined>被添加到末尾这是脚本现在的结果:

<a href=http://www.eksempel.com>__BESKRIVELSE_AV_LENKEN__</a><undefined></undefined>

编辑 2

解决了脚本用这个清理texarea的问题:

<script>
function addUrl()
{
var x;
var nettside=prompt("Skriv inn lenkeadressen her (uten http://):","www.eksempel.com");
  {
  x="<a target =_blank href=http://" + nettside + ">" + "__BESKRIVELSE_AV_LENKEN__" + "</a>";
  var Field = document.getElementById('area');
  var val = Field.value;
  var selected_txt = val.substring(Field.selectionStart, Field.selectionEnd);
  var before_txt = val.substring(0, Field.selectionStart);
  var after_txt = val.substring(Field.selectionEnd, val.length);
  Field.value = before_txt  + x + after_txt;
  }
}
</script>

所以现在缺少的只是删除<undefined></undefined> -标签。

网页: <input type="button" id="s_5" onclick="javascript:addUrl()">

解决!

您应该检查浏览器的控制台 - 它始终会通知发生了什么错误。

您在这一行中有一个拼写错误:

  x="http://" + nettside + ";

应删除结尾+ "


另外,在这里:

document.getElementById("area").innerHTML=x;

您应该改用value(通常您使用 for 元素执行此操作):

document.getElementById("area").value=x;

这可能不会在您使用的浏览器中引起问题,但在某些情况下可能会导致奇怪的行为:)。