2009-10-16 58 views
1

我有一个'创建标签'的表单。使用下面的jQuery代码。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”变量包含空格,那它就会结束。看着它通过萤火虫,如果世界上没有空间的参数显示如下:

company_id 5495 
newtag test 
type_id 2 

不过是进入了一个空当,这似乎是这样的:

newtag test 

有谁知道这可能是为什么发生?为什么它没有将正确的变量传递给加载的页面?

在此先感谢!

瑞安

回答

11

上的值,用encodeURIComponent()

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

为我节省了一百万小时.. – Fergus 2014-12-05 05:54:22

1

我想你一定编码您的URL中的%20的空间,因为如果你把它当作一个空间,它将标志着该网址的结尾。我不认为jQuery加载本身会有任何特殊字符转义。

+0

的空间在这个例子中的问题,但如果有人把一个什么符号在现场? – nickf 2009-10-16 05:55:35

1

与是encodeURI编码您newtag值()

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