问题:
jquery中的$(document).ready(function(){})中调用两个方法(1)利用ajax请求去后台查图书类别的方法(2)当页面上利用图书类别去查询图书返回页面,让图书类别回显的方法。在(2)方法中如果加alert()能正常执行,去掉alert()不能正常执行的问题。
解决源码
1 <script type="text/javascript"> 2 //复核查询 3 function seachSysBook(){ 4 //从下拉框获取图书类别 5 var categoryid=$("#categoryid").val(); 6 //从输入框获取isbn的值 7 var isbnid=$("#isbnid").val(); 8 //去除两端空格 9 isbnid=mytrim(isbnid); 10 //拼接请求地址 11 if(categoryid!="-1"||isbnid.length>0){ 12 var hrefs="<%=request.getContextPath()%>/sys/queryBook"; 13 if(categoryid=="-1"&&isbnid.length>0){ 14 hrefs=hrefs+"?isbn="+isbnid; 15 } 16 if(categoryid!="-1"&&isbnid.length<=0){ 17 hrefs=hrefs+"?catId="+categoryid; 18 } 19 if(categoryid!="-1"&&isbnid.length>0){ 20 hrefs=hrefs+"?catId="+categoryid+"&isbn="+isbnid; 21 } 22 window.location.href=hrefs; 23 }else{ 24 alert("请选择图书分类或填写ISBN进行查询"); 25 } 26 } 27 28 //自定义去除字符串两端空格的方法 29 function mytrim(str){ 30 //从字符串左边开始匹配空格的正则 31 var left=/^\s*/; 32 //从字符串结束处开始匹配空格的正则 33 var right=/\s*$/; 34 str=str.replace(left,"").replace(right,""); 35 return str; 36 } 37 38 //加载图书栏目,当每次这个页面加载完毕后,去后台加载图书的所有类别信息,添加到下拉框 39 function loadCategory(){ 40 $.ajax({ 41 type:"POST", 42 url:"<%=request.getContextPath() %>"+"/sys/ajax/category/0/options", 43 dataType:"json", 44 success:function(data){ 45 var options=data["options"]; 46 $("#categoryid").html("<option value=\"-1\">===请选择===</option>"+options); 47 } 48 }); 49 } 50 51 //当触发符合查询方法,返回符合条件的结果,此处作为回显图书分类的请求条件 52 function echoCat(){ 53 //从请求作用域中获取请求的图书类别的id 54 var cat>; 55 if(catid!=null&&catid.length>0){ 56 //将请求的图书类别的id,赋值给下拉框,实现请求条件回显 57 $("#categoryid").val(catid); 58 } 59 } 60 61 //页面加载完毕加载 62 $(document).ready(function(){ 63 loadCategory(); 64 //延时调用该方法,避免没有alert不能成功执行 65 setTimeout(echoCat,500); 66 }); 67 </script> 68 69 70 页面查询器 71 <ul class="toolbar1"> 72 <li><label>图书分类</label> 73 <select class="select3" > 74 </select> 75 </li> 76 <li class="click"> 77 ISBN:<input type="text" /> 78 </li> 79 80 <li><label> </label><input name="" type="button" class="scbtn" value="查询" onclick="seachSysBook();" /></li> 81 82 </ul>