Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当页面未刷新时,Jquery无法正确运行_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 当页面未刷新时,Jquery无法正确运行

Javascript 当页面未刷新时,Jquery无法正确运行,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个MVC页面,显示和隐藏一些文本框,这取决于使用Jquery对下拉列表值的更改。页面本身工作,但当我进入其他菜单选项并返回到该菜单时,我将其置于菜单下,它会显示所有文本框。这是视图中的Jquery代码: function toggleDIvDisplay(e) { if (!e) e = ''; $('button.search').toggle(e != ''); $('#divAppName').toggle(e == 1)

我有一个MVC页面,显示和隐藏一些文本框,这取决于使用Jquery对下拉列表值的更改。页面本身工作,但当我进入其他菜单选项并返回到该菜单时,我将其置于菜单下,它会显示所有文本框。这是视图中的Jquery代码:

   function toggleDIvDisplay(e) {
       if (!e)
          e = '';

     $('button.search').toggle(e != '');
     $('#divAppName').toggle(e == 1);

     $('#divSSN').toggle(e == 2);

    $('#divRemref').toggle(e == 3);



}


 $(document).ready(function () {


    $('button.search').click(function (evt) {

        evt.preventDefault();

        var container = $('#customer-results');
        container.hide();

        $('table tbody', container).empty();

          var searchMethod = $('#@Html.IdFor(model => model.SearchMethod)').val();

        switch (searchMethod) {
            case '1':
                getByFirstNameAndLastName();
                break;
            case '2':

                getBySSN();
                break;
            case '3':
                getByRemRef();

                break;
            default:
                return false;
        }
    });

     toggleDIvDisplay();

    });
这是视图中的“我的文本框”和“搜索”按钮:

    <div class="clearfix"  style="margin-top:20px">
    Search By:
  @Html.DropDownListFor(model => model.SearchMethod,    Model.AvailableSearchMethods, new { onchange = "toggleDIvDisplay(this.value)" })


   </div>
   <div id="divAppName" class="pull-left" style="margin-top:35px">
   First Name:
  @Html.TextBoxFor(model => model.FirstName)

   Last Name:
   @Html.TextBoxFor(model => model.LastName)

  </div>
 <div id="divSSN" class="pull-left" style="margin-top:35px">
 SSN:
 @Html.TextBoxFor(model => model.SSN)
  </div>
     <div id="divRemref" class="pull-left" style="margin-top:35px">
           RemRef:

   @Html.TextBoxFor(model => model.RemoteRefNumber)
  </div>
  <div class="pull-left" style="margin-top:35px;margin-left:50px">
<button class="btn btn-success search pull-left">Search</button>
</div>
这是菜单中的链接:

 <li>@Html.ActionLink("Application Document Lookup", "Search", "Doc")</li>
@Html在服务器端MVC上呈现

只有在呈现并发送到浏览器后,jQuery才能看到它。 最后,如果你检查你的页面,你将找不到任何像这样的Id

这里应该是$ID的下拉列表


另一方面,jQuery无法在您的模型上运行函数,因此您必须使用视图或jQuery,但不能同时使用两者。

1您的上述代码中没有任何AJAX。2当您离开/返回时,您会重置页面,因此您需要维护元素状态,例如使用cookie或。
      var searchMethod = $('#@Html.IdFor(model => model.SearchMethod)').val();