Jquery $.ajax第一轮下拉列表填充不起作用
我遇到了一种情况,我点击一个动态链接,它会打开页面,触发$.ajax,它应该填充一个下拉列表,如果我点击刷新,它就会填充下拉列表,同样,如果我第一次点击另一个链接,它不会更新下拉列表,但是如果我回到浏览器,再次点击同一个链接,它就会填充,我是否遗漏了一些东西。:)这个有我。我在$(document.read()到$(window.load()之间移动了一些代码以进行测试Jquery $.ajax第一轮下拉列表填充不起作用,jquery,Jquery,我遇到了一种情况,我点击一个动态链接,它会打开页面,触发$.ajax,它应该填充一个下拉列表,如果我点击刷新,它就会填充下拉列表,同样,如果我第一次点击另一个链接,它不会更新下拉列表,但是如果我回到浏览器,再次点击同一个链接,它就会填充,我是否遗漏了一些东西。:)这个有我。我在$(document.read()到$(window.load()之间移动了一些代码以进行测试 $(window).load(function () { var value = GetParam("bookchap
$(window).load(function () {
var value = GetParam("bookchapter");
$("#bookName").change(function () {
LoadChapters(this.value);
});
var bookparts = value.split(".");
var bname = bookparts[0];
var bchapt = bookparts[1];
$('#chapter option').empty();
$('#bookName').val(bname);
LoadChapters(bname);
$('#chapter').val(bchapt);
});
$(document).ready(function () {
var indexno = $("#bookName").prop("selectedIndex");
var bookname = $("#bookName>option:selected").text();
LoadChapters(bookname);
//$("#bookName").change(function () {
// LoadChapters(this.value);
//});
var loc = document.location.hash.substring(1);
$(document.getElementById(loc)).css("color", "blue");
$(document.getElementById(loc)).css("font-weight", "bold");
});
function LoadChapters(book) {
$.ajax({
type: 'GET',
url: '/Book/LoadChapters',
data: 'bookName=' + book,
contentType: 'application/json; charset=utf-8',
cache: false,
dataType: 'json',
}).done(function (data) {
alert($('#chapter option').length);
if ($('#chapter option').length > 0) {
$('#chapter').empty();
}
$(data).each(function () {
var option = new Option(this.Value, this.Label);
$("#chapter").append(option);
});
var val = GetParam("bookchapter");
var bookparts = val.split(".");
var bname = bookparts[0];
var bchapt = bookparts[1];
$('#chapter').val(bchapt);
});
};
function GetParam(name) {
var value = "";
if (window.location.hash) {
var k = window.location.toString();
value = k.substring(0, k.indexOf("#") );
}
else {
value = window.location.toString();
}
if (value.indexOf("?")) {
value = value.substring(value.indexOf("?") + 1, value.length);
var params = value.split("&");
if (params) {
for (var i = 0; i < params.length; i++) {
var pair = params[i].split('=');
if (decodeURIComponent(pair[0]) == name)
return decodeURIComponent(pair[1]);
}
}
}
else {
return "";
}
}
$(窗口)。加载(函数(){
var值=GetParam(“账簿章节”);
$(“#bookName”).change(函数(){
LoadChapters(此.value);
});
var bookparts=价值分割(“.”);
var bname=bookparts[0];
var bchapt=图书零件[1];
$(“#章节选项”).empty();
$('#bookName').val(bname);
加载章节(bname);
$('章').val(b章);
});
$(文档).ready(函数(){
var indexno=$(“#bookName”).prop(“selectedIndex”);
var bookname=$(“#bookname>选项:选中”).text();
装入章节(书名);
//$(“#bookName”).change(函数(){
//LoadChapters(此.value);
//});
var loc=document.location.hash.substring(1);
$(document.getElementById(loc)).css(“颜色”、“蓝色”);
$(document.getElementById(loc)).css(“字体重量”、“粗体”);
});
功能加载章节(书籍){
$.ajax({
键入:“GET”,
url:“/Book/LoadChapters”,
数据:“bookName=”+书本,
contentType:'application/json;charset=utf-8',
cache:false,
数据类型:“json”,
}).完成(功能(数据){
警报($(“#章节选项”).length;
如果($('#章节选项')。长度>0){
$(“#章”).empty();
}
$(数据)。每个(函数(){
var option=新选项(this.Value,this.Label);
$(“#章”)。附加(可选);
});
var val=GetParam(“账簿章节”);
var bookparts=val.split(“.”);
var bname=bookparts[0];
var bchapt=图书零件[1];
$('章').val(b章);
});
};
函数GetParam(名称){
var值=”;
if(window.location.hash){
var k=window.location.toString();
value=k.substring(0,k.indexOf(“#”);
}
否则{
value=window.location.toString();
}
if(值indexOf(“?”){
value=value.substring(value.indexOf(“?”)+1,value.length);
var params=价值分割(&);
如果(参数){
对于(变量i=0;i
index.cshtml
<h2>BOok</h2>
<form method="get" action="#">
@Html.DropDownList("bookName", (SelectList)ViewBag.bookName, "--Select--", "bookName")
@*(string)ViewBag.InBoek*@
@Html.DropDownList("chapter", Enumerable.Empty<SelectListItem>())
<button value="Submit" type="submit">Gaan na</button>
<table class="skrifkolom">
<thead>
<tr>
<th>No</th>
<th>Vers</th>
</tr>
</thead>
@if (Model != null)
{
foreach (var item in Model)
{
<tr id="@item.VersNommer">
<td>@item.VersNommer</td>
<td>@item.Vers</td>
</tr>
}
}
</table>
</form>
书
@Html.DropDownList(“bookName”,(SelectList)ViewBag.bookName,“--Select--”“bookName”)
@*(字符串)ViewBag.InBoek*@
@Html.DropDownList(“chapter”,Enumerable.Empty())
砷化镓钠
不
弗斯
@如果(型号!=null)
{
foreach(模型中的var项目)
{
@项目1.Versnomer
@项目1.Vers
}
}
尝试改用.get,并在成功时实现回调函数,看看运气是否更好。我看你的代码没有问题。你试过调试你的代码,看看ajax调用是否被调用了吗?@Chuck是的,它发出了“警报”,但第一轮从未到达$(数据)。每个(函数(){})我都从未使用过。get,让我查一下并尝试一下。并且没有控制台错误。在这种情况下,可能数据(在每个函数中)是空的。请使用浏览器中的网络控制台查看所接收的数据的确切内容。。。