我目前正在与JSP和Struts一起使用jquery mobile。问题是仅在页面刷新一次后才调用javascript函数。该脚本位于数据角色“页面”中。但是问题仍然存在。当前正在使用jQuery 1.0稳定版。这是我的代码..
<body> <div data-role="page" id="webtosms"> <script language="javascript"> function phonenumlen(){ //Mobile no validation var numlen = mobileno.value.length; //alert(numlen); if(numlen==0){ alert('Mobile Number cannot be left blank'); return false; } else if(numlen<10) { alert('Mobile number cannot be less than 10 digits'); return false; } else { //alert('true'); return true; } } function goodchars(e,goods){ // restrict users from entering letters in the mobile number textbox var key, keychar; key = getkey(e); if (key == null) return true; // get character keychar = String.fromCharCode(key); keychar = keychar.toLowerCase(); goods = goods.toLowerCase(); // check goodkeys if (goods.indexOf(keychar) != -1) return true; // control keys if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 ) return true; return false; } function getkey(e) { if (window.event) return window.event.keyCode; else if (e) return e.which; else return null; } langId = 'EN'; messageLen = 299; message = ""; function checkCount() { //alert('function called'); if(document.webtosms.message.value.length <= messageLen) { message = document.webtosms.message.value; document.webtosms.charcount.value = (messageLen - document.webtosms.message.value.length); }else { document.webtosms.message.value = message; } } function getTemplate(){ // code to populate the drop down and display in the textarea var where_is_mytool=document.forms[0].cboTemplate.value; var mytool_array=where_is_mytool.split("~"); //alert(where_is_mytool); alert(mytool_array); window.document.forms[0].smsa.value=mytool_array[0]; window.document.forms[0].tmplid1.value=mytool_array[1]; window.document.forms[0].title2.value=mytool_array[1]; window.document.forms[0].hidlang.value=mytool_array[2]; window.document.forms[0].hidcreatedbyval.value=mytool_array[5]; } </script> </div>
刷新页面后,以上代码绝对可以正常工作。我不想在页面已经加载后重新加载它。请帮忙。
在包含jQuery之后,但在调用jQuery mobile之前,需要将所有JavaScript放在头部。
您的头文件应与此类似(第二个文件中为自定义JS):
<script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.example.com/path-to-file/custom-javascript.js"></script> <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
更新
在页面的链接上,添加属性data-ajax="false"。如果您想在整个网站范围内禁用Ajax导航,请将以下代码放入“自定义JS”文件中:
data-ajax="false"
$(document).bind("mobileinit", function(){ $.extend( $.mobile , { ajaxEnabled: false }); });
这是文档的链接:http : //jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html