1

我的参数是从 html 代码中提取出来的,然后粘贴到jQuery .load request.

html代码:

<a href="#" class="employee">John Doe<span>Lead Web Developer</span></a>

从 html 代码中提取参数,内部.click

        //Create href + params from name + params from title
        var substr = ( $(this).html() ).split('<span>')[0].split(' '); // Get First & Last Name
        var JobTitle = $('span', this).html(); // Get Job Title 

        console.log( JobTitle );  
        // console log will be multivalue (e.g "Lead Web Developer")

带有参数的 jQuery .load 请求

$('.popUp').load("employee.php?FirstName=" + substr[0]+"&LastName=" + substr[1] + "&JobTitle=" + JobTitle, function(){

                // Do Stuff When Done

        });

但是,我可以在 FireBug 中看到的 URL 是这样的:

http://host.loc/employee.php?FirstName=John&LastName=Doe&JobTitle=Lead


如您所见,只var JobTitle使用了第一个单词 from 。为什么?

如何在 URL 中传递多值参数?

4

2 回答 2

3

我认为您应该使用encodeURIComponent()对值进行编码以允许查询字符串中的空格

    var JobTitle = $('span', this).html(); // Get Job Title 
    JobTitle = encodeURIComponent(JobTitle)
    console.log( JobTitle );  
于 2011-10-04T08:44:16.280 回答
1

对参数进行编码。

使用http://api.jquery.com/jQuery.param/它将为您处理它。

例子 -

$(document).ready(function(){
    $('a').click(function(e){
        e.preventDefault();
        var substr = $(this).html().split('<span>')[0].split(' ');
        var JobTitle = $('span', this).html();
        var params = {
            FirstName: substr[0],
            LastName: substr[1],
            JobTitle: JobTitle
        };
        alert($.param(params ));
    });
})
于 2011-10-04T08:54:32.113 回答