1

jQueryダイアログボックス内にいくつかのデータ入力を含むHTML5ページがあります。入力属性 form=dataInput を使用して、このデータをフォーム処理にスイープします。Firefox と Chrome では問題なく動作しますが、IE では入力フォーム属性がサポートされていないため、IE では動作しません。ダイアログ ウィジェットに関する何らかの問題により、入力ボックスの要素がフォーム処理に対して「不可視」になります。form 属性は、HTML5 をサポートするブラウザーでこれを修正しますが、リリースされた IE はこのサポートを提供していません。$('.ui-dialog').appendTo('form'); を試しました ダイアログを開く:オプションで、しかし、それは問題を解決しません。IE に入力データを Dialog ウィジェットから $_POST にスイープさせる方法はありますか?

ダイアログ内の入力ボックスのサンプルを次に示します。

<label><input type="radio" id="unitedStates"  name="country" form="dataInput" value="US">United States</label>

jQuery Form プラグインを使用して送信を実行します。beforeSubmit や beforeSerialize などのいくつかのオプションがありますが、この問題を解決するために使用できるかどうかを知るには、ドキュメントや送信プロセスを十分に理解していません。コードまたはチュートリアルを具体的に記入してください。私はこれに慣れていないので、一般的な指示にうまく従いません。;-) (ところで、IE には私が必要とする他の機能サポートがありますが、これだけではありません。)

アンドリュー・ハグナーの提案と私の修正を加えた私のコードは次のとおりです。ダイアログは機能しますが、IE は国の値を設定しません。何を変える必要がありますか?

var countrySelected = $("input[type=radio][name=country]").val(); //set earlier by W3C geocoding
var countryChooser = $('#countryChoices').dialog( {       
    autoOpen: false,
    bgiframe: true,
    height: 300,
    width: 850,
    resizable: false,
    draggable: true,
    title: "Click to select another country",
    open: function () {
            $('#regions').tabs(
                {
                event: "mouseover",
                })
        },
    buttons: {
        'Close / continue location input': function ()
                {
                countrySelected = $('input[name=country]:checked').val();
                $(this).dialog('close');
                }
            } 
});
//then later on
getCityFromGeonames3Step(countrySelected);
4

1 に答える 1

1

更新しました:

// Before you enter dialog, assign the element you will
// be grabbing the info from to a variable.
var countrySelectionElement = $("input[type=radio][name=country]").val(); 
var countrySelected = "";

var countryChooser = $('#countryChoices').dialog( {       
autoOpen: false,
bgiframe: true,
height: 300,
width: 850,
resizable: false,
draggable: true,
title: "Click to select another country",
open: function () {
        $('#regions').tabs(
            {
            event: "mouseover",
            })
    },
buttons: {
    'Close / continue location input': function ()
            {
            // Since jQuery won't work in here, use the variable
            // we assigned above to access value.
            countrySelected = countrySelectionElement.val();
            $(this).dialog('close');
            }
        } 
});

//then later on
getCityFromGeonames3Step(countrySelected);

オリジナル:

ダイアログを開く前に、入力を変数に割り当てます。

function OpenDialog()
{
    var input = $("yourinput");

    // Open dialog, use input to work with that element.

    // If you want you can then place the entered data in a hidden field
    // using jQuery, in the same way we are using input here. Then you will
    // be able to post that data back however you like.

}

先日、この問題が発生しました.jQueryのDialogサイトでこの解決策を見つけました。 http://jqueryui.com/demos/dialog/#modal-form

于 2012-07-20T20:15:45.453 に答える