我不得不承认我非常困惑,我已经搜索了几个小时来尝试解决这个问题。这尤其令人沮丧,因为它似乎只影响 Android 设备 - 它在 Windows(Chrome、Safari、FireFox、IE)、Mac 和 iPhone 上运行良好。这是场景:
我有一个带有一些嵌入式 javascript 的标准 HTML 页面:
<script language="javascript">
function doSubmit()
{
// some processing occurs here then the form gets submitted
document.myForm.submit();
}
</script>
. . .
<form id="myForm"
name="myForm"
action="/foo/bar/Default.aspx"
method="POST"
enctype="application/x-www-form-urlencoded"
target="about:blank"
onsubmit="window.open('', this.target);" >
<!-- Data Entry Fields here... ->
. . .
<!-- Hidden Fields here... ->
<input type="hidden" id="value1" name="value1" />
<input type="hidden" id="value2" name="value2" />
<input type="hidden" id="value3" name="value3" />
</form>
<input type="button" onclick="doSubmit()" value="Click Me">
Default.aspx 已打开,并进行以下检查:
protected void Page_Load(object sender, EventArgs e)
{
try
{
NameValueCollection nvc = Request.Form;
string frmValue1 = nvc["value1"];
string frmValue2 = nvc["value2"];
string frmValue3 = nvc["value3"];
//
if (frmValue1 == null)
frmValue1 = "{Blank}";
if (frmValue2 == null)
frmValue2 = "{Blank}";
if (frmValue3 == null)
frmValue3 = "{Blank}";
//
sMsg = string.Concat(sMsg, string.Format("Value1: {0}", frmValue1), "|");
sMsg = string.Concat(sMsg, string.Format("Value2: {0}", frmValue2), "|");
sMsg = string.Concat(sMsg, string.Format("Value3: {0}", frmValue3), "|");
//
Response.Write(sMsg);
在 Android 设备上呈现 Default.aspx 页面时,每个值都返回为null
(在页面上打印为“{Blank}”)。我还尝试使用 jQuery 结构化提交提交表单:$("#myForm").submit();
但结果相同。
您可以提供的任何帮助将不胜感激。
蒂亚!