页面加载后隐藏的Div重新出现

时间:2014-06-19 09:19:18

标签: jquery jquery-mobile razor

我有一个隐藏的div,无缘无故再次出现。

再见者;

@using (Html.BeginForm("DoSomethingAction", "WorkSpace", FormMethod.Post, new { data_ajax = "true", id = "frmHidden"}))
{
  <div id="theHiddenDiv">
    ...just some textboxes here and a submit button
  </div>
}

在同一页面的另一个表单中,我有以下内容,只是切换按钮可见性。提交此表单后,隐藏的重新出现。

@using (Html.BeginForm("PostSomethingAction", "WorkSpace", FormMethod.Post, new { data_ajax = "true", id = "frmMainStuff" }))
{
 ...
 <a data-role="button" data-theme="b" onclick="toggleVis();" data-icon="plus" data-iconpos="left">+ something?</a>
 ...
 <input type="submit" value="Go!" name="Command" />
 ...
}

唯一一段改变可见性的代码

$(document).ready(function () { 
    $('#theHiddenDiv').hide(); 
});

function toggleVis() {
    $('#theHiddenDiv').toggle();
}

1 个答案:

答案 0 :(得分:1)

通过向data_ajax="true"添加Html.BeginForm,它将像Ajax.BeginForm一样运作。这意味着您的表单提交是通过ajax进行的,而页面没有重新加载。您只是重新加载页面/表单的内容。

这意味着$(document).ready()不会再次触发,因为这是Ajax负载而不是页面加载。

选项:

  • 删除data_ajax="true"
  • 听取ajax加载完成并在该点隐藏div
  • 首先使用样式隐藏div(首选)