将用户的输入从textarea(所有行)传递到URL

时间:2013-09-13 08:22:32

标签: html url textarea

我知道如何只将textarea的第一行传递给URL.But是否可以传递用户可能已经插入到URL的所有行?可能我需要javascript。

<form id="form1" action="http://site.com/" target="_blank">
<textarea rows="5" name="abc"></textarea>
<button type="submit">Submit</button>
</form>

http://jsfiddle.net/PE8Ly/

3 个答案:

答案 0 :(得分:1)

Quentin是正确的。您的代码已经传递了textarea元素的全文。

site.com删除了额外的内容。

尝试更改

action="http://site.com"

action="http://localhost"

或类似的内容,您会注意到由于URL编码,整个内容都会以%0D%0A分隔的行传递。

Fiddle

%0D适用于carriage return%0A适用于line feed

因此,您需要在实际接收数据的页面上相应地解析数据。

答案 1 :(得分:0)

试试这个。我从ÖzkanÖZLÜ代码中做了一些更改

$(function()
  {
  $("#btn_go").click(
  function()
      {
          var txt = "line1=" + $("textarea").val();

            for(i = 0; i < $("textarea").attr("rows"); i++)
            {
                txt = txt.replace("\n","&line" + (i+2) + "=");
            }                      
          $("form").attr("action", "?" + txt);          
      }
  );
});

答案 2 :(得分:-1)

Fiddle is here

这是我尝试使用jQuery:

<强> HTML

<form action="http://site.com" action="get" target="_blank">
    <textarea rows="10" cols="30"></textarea>
    <input type="button" value="go" id="btn_go" />
</form>
<div></div>

<强> JS

$(function () {
$("#btn_go").click(

function () {
    var txt = "line1=" + $("textarea").val();
    var lines = txt.split(/\r|\r\n|\n/);
    var count = lines.length;

    for (i = 0; i < count; i++) {
        txt = txt.replace("\n", "&line" + (i + 2) + "=");
    }
    $("div").html(txt);
    window.location.href = $("form").attr("action") + "?" + txt;
});
});