空格中的jquery结束字符串

时间:2009-10-16 05:46:24

标签: jquery variables whitespace

我有一个'创建标签'的表单。使用下面的jQuery代码。

$("#createtag").submit(function() { //same as above, but for form submit instead of button click
   var newtag     = $('#newtag').attr('value');
   var type_id     = $('#type_id').attr('value'); 
   var company_id     = $('#company_id').attr('value'); 
         $('#createtag').load("../contacts/action_createtag.php?newtag="+ newtag + "&type_id=" + type_id + "&company_id=" + company_id).append('#createtags');
   return false;
  });

但我刚刚意识到,如果'newtag'变量包含一个空格,那么它将会结束。通过firebug观察它,如果没有空间,参数显示如下:

company_id 5495
newtag test
type_id 2

但是当输入空格时,它看起来像这样:

newtag test

有人知道为什么会这样吗?为什么没有将适当的变量传递给加载的页面?

提前致谢!

赖安

4 个答案:

答案 0 :(得分:11)

对值使用encodeURIComponent()

$('#createtag').load("../contacts/action_createtag.php?newtag="+
  encodeURIComponent(newtag) + "&type_id=" + encodeURIComponent(type_id) +
  "&company_id=" + encodeURIComponent(company_id)).append('#createtags');

答案 1 :(得分:3)

您需要对变量进行编码。

使用encodeURIComponent()

答案 2 :(得分:1)

我认为您必须将您的空间编码为网址中的%20,因为如果您将其作为空格传递,则会标记网址的结尾。我认为jQuery load不会自行转义任何特殊字符。

答案 3 :(得分:1)

使用encodeURI()

对新标签值进行编码
$('#createtag').load("../contacts/action_createtag.php?newtag="+ encodeURI(newtag) + "&type_id=" + encodeURI(type_id) + "&company_id=" + encodeURI(company_id)).append('#createtags');