0
$('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アクションの検証呼び出しを行っていますが、フォームフィールドに値として#または%が含まれている場合、サーバー側でリクエストパラメータを取得しているときに、これらの特殊文字の後のすべてのパラメータが入力されませんリクエストパラメータマップ。

上記の問題の解決策は何でしょうか?

4

1 に答える 1

0

decodeURIComponentを呼び出さず、シリアル化されたフォームデータをサーバー側に送信するだけで問題を解決できました。サーバー側では、エンコードされたデータがstruts2によって自動的にデコードされます。

于 2012-06-04T12:16:56.817 に答える