我有一个用If(IsPost)和If(!IsPost)触发的脚本。当我通过代码F11一切工作相同的期望在最后一个javascript函数显示div不触发。
// SCRIPT FOR SHOW DIV.
<script>
function ShowFunction(divId)
{
$("#" + divId).show(600);
}
</script>
if (!IsPost)
{
var user = WebSecurity.CurrentUserId;
var dbCommand = "SELECT * FROM Survey WHERE survey_id = @0";
var row = db.QuerySingle(dbCommand, user);
if (row != null)
{
surv1 = row.surveyQ1;
if (surv1 != null)
{
someOtherVariable = "Complete";
<body onload="$('#somediv').remove();"></body>;
}
}
if (someOtherVariable = "Complete";
{
<body onload="ShowFunction('Mydiv');"</body>;
}
}
if (IsPost)
{
if (Request.Form["btnsubmit"] !=null)
{
var user = WebSecurity.CurrentUserId;
var dbCommand = "SELECT * FROM Survey WHERE survey_id = @0";
var row = db.QuerySingle(dbCommand, user);
if (row != null)
{
surv1 = row.surveyQ1;
}
if (surv1 == "yes")
{
<body onload="ShowFunction('Mydiv');"></body>;
}
}
}
此外,cshtml页面的结构正好位于IsPost上方,位于IsPost之上,位于Form代码之上。另一篇文章提出,我在脚本块中也有一个'window.onload'脚本可能会弄乱&lt; body onload =“func”&gt;。我不确定为什么只有在不发布时才会出现这个问题。
答案 0 :(得分:0)
我找到了罪魁祸首。虽然这不在我发布的原始代码中,但我实际上还有一个正在运行的代码位于if(!ispost)中没有触发的代码之上。额外的身体负荷不在if(ispost),这就是为什么这个职位工作得很好。我编辑了原始代码来展示这一点。一旦我将第一个身体上的负荷(通过一些按摩)向下移动到另一个身体上,它就可以正常工作。在移动了第一个body-onload后,我在if(!ispost)代码段中留下了一个body-onload。
<body onload="ShowFunction('Mydiv'); $('#somediv').remove();"</body>;
我还添加了我的原始标题,以便这对偶然发现它的人有用。总之,请注意何时有多个onload事件。您可能需要将它们堆叠到一个onload中并稍微按下代码。