Javascript 当页面未刷新时,Jquery无法正确运行
我有一个MVC页面,显示和隐藏一些文本框,这取决于使用Jquery对下拉列表值的更改。页面本身工作,但当我进入其他菜单选项并返回到该菜单时,我将其置于菜单下,它会显示所有文本框。这是视图中的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)
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();