0

我知道如何只将文本区域的第一行传递给 URL。但是是否可以将用户可能插入的所有行传递给 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/

4

3 回答 3

1

昆汀是对的。您的代码已经传递了textarea元素的整个文本。

site.com删除多余的内容。

尝试改变你的

action="http://site.com"

action="http://localhost"

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

小提琴

%0D是为了carriage return并且%0A是为了line feed

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

于 2013-09-13T09:31:30.980 回答
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);          
      }
  );
});
于 2013-09-13T09:06:20.713 回答
-1

小提琴在这里

这是我使用 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;
});
});
于 2013-09-13T08:35:48.363 回答