0

現在、Struts とともに JSP を使用して 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>

ページが更新されると、上記のコードは完全に正常に機能します。すでに読み込まれているページを再読み込みしたくありません。助けてください。

4

2 に答える 2

2

jQuery をインクルードした後、jQuery モバイルを呼び出す前に、すべての JavaScript を head セクションに配置する必要があります。

ヘッド ファイルは次のようになります (2 番目のファイルのカスタム 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 ファイルに次のコードを追加します。

$(document).bind("mobileinit", function(){
  $.extend(  $.mobile , {
    ajaxEnabled: false
  });
});

ドキュメントへのリンクは次のとおりです。http://jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html

于 2012-08-22T19:40:56.653 に答える