提交包含特殊字符值的表单

时间:2012-05-07 12:45:46

标签: javascript jquery struts2

$('form').on('submit', function(submitEvent)
{
    $('table[id*=OtherOptions] :input').attr('disabled', false);
    $('#collapsiblePanel :input').attr('disabled', false);

    if (preventSubmit)
    {
        submitEvent.preventDefault();

        populateDateValues();

        populateContextFilterValues();

        if($.browser.msie)
        {
                $('#collapsiblePanelHiddenValues').val(JSON.stringify(collapsiblePanelObj));
        }

        var form = $(this);

        var formInput = decodeURIComponent(form.serialize());           

        $.getJSON('ValidateParams', formInput, function(data)
        { 
// Some more code here...

在上面的代码中,我正在使用表单数据对struts2操作进行验证调用,但是如果某个表单字段包含#或%作为值,那么在服务器端获取请求参数时,这些特殊字符后面的所有参数都会执行没有进入请求参数映射。

上述问题可以解决什么问题?

1 个答案:

答案 0 :(得分:0)

我能够通过不调用decodeURIComponent并仅将序列化表单数据发送到服务器端来解决问题,其中编码数据由struts2自动解码。