我有一个 HTML5 页面,在 jQuery 对话框中包含多个数据输入。我使用输入属性 form=dataInput 将这些数据扫描到表单处理中。它在 Firefox 和 Chrome 中运行良好,但在 IE 中无法正常运行,因为 IE 不支持输入表单属性。Dialog 小部件的某些内容使输入框元素对表单处理“不可见”。form 属性为支持 HTML5 的浏览器修复了这个问题,但没有发布的 IE 有这个支持。我试过 $('.ui-dialog').appendTo('form'); 在 Dialog open: 选项中,但它不能解决问题。有没有办法让 IE 将输入数据从 Dialog 小部件中扫出并进入 $_POST ?
这是对话框内的输入框示例
<label><input type="radio" id="unitedStates" name="country" form="dataInput" value="US">United States</label>
我使用 jQuery Form 插件来执行提交。它有一些选项,例如 beforeSubmit 和 beforeSerialize,但我不太了解文档或提交过程,不知道它们是否可以用来解决这个问题。请具体说明代码或教程。我对此很陌生,以至于我不能很好地遵循一般说明。;-)(顺便说一句,IE 有我需要的其他功能支持,只是没有这个。)
这是我的代码以及 Andrew Hagner 的建议和我的修改。对话框有效,但 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);