jquery - $.ajax first round populate of dropdown not working -
i have situation, click dynamic link opens page fires $.ajax should populate dropdown, if hit refresh populates dropdown, same think if click link first time not update dropdown if on browser , click same link again, populates missing something. :) 1 has me. have moved code between $(document).read() $(window).load() test.
$(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) { (var = 0; < params.length; i++) { var pair = params[i].split('='); if (decodeuricomponent(pair[0]) == name) return decodeuricomponent(pair[1]); } } } else { return ""; } } 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>
Comments
Post a Comment