dongliqin6939 2014-08-13 02:41
浏览 85
已采纳

使用href传递信息时,javascript不会执行

In the index.php I use href to send value to another php file;

<a href="orderinfo.php?type=11" class="ui-btn ui-shadow">order</a>

and the orderinfo.php is like below.

<html>
<head>

  <script type="text/javascript">
    function disableOption()
    {
        console.log("hello");
    }
  </script>

</head>
<body onload="disableOption()">
</body>

</html>

When I click the href in the main.php. it direct me to the orderinfo.php. but the function disableOption() will not excute till I refresh the website by myself. What's the problem here.

I don't know why . but is I don't add the type=11.It works fine.

<a href="orderinfo.php?" class="ui-btn ui-shadow">order</a>

try to clear the cache.and also add

<!-- no cache-->
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">  
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">  
<meta HTTP-EQUIV="expires" CONTENT="0"> 

still not work. I need to refresh the page manually, and the console will show the log info.. It's weird.should I put the whole web page here. because It's too big..

below is the whole webpage.

<!DOCTYPE html>
<head>
<title>index</title>
<!--prevent from become to big on desktop-->
<meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css" />
<!--import the JQuery JSlib-->
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>
<!--Custom CSS-->
<style>     
#ad{
    text-align:center;
}
.pic{
    margin-left:0;
}
.price{

}
.discount{
    color:red;
}
.order{
    float:left;
    margin-left:40px;
}


.custom-corners .ui-bar {
    margin-top:10px;
    -webkit-border-top-left-radius: inherit;
    border-top-left-radius: inherit;
    -webkit-border-top-right-radius: inherit;
    border-top-right-radius: inherit;
}
.custom-corners .ui-body {
    border-top-width: 0;
    -webkit-border-bottom-left-radius: inherit;
    border-bottom-left-radius: inherit;
    -webkit-border-bottom-right-radius: inherit;
    border-bottom-right-radius: inherit;
}

</style>
</head>
<body>

<div data-role="page" class="page">

<div data-role="header" style="overflow:hidden;" data-position="fixed">
    <h1>deal</h1>
        <a href="#" data-icon="gear" class="ui-btn-right">option</a>

</div><!-- /header -->

<div role="main" class="ui-content" class="jqm-main">
    <div data-role="tabs" id="tabs" class="jqm-tab">

        <div data-role="navbar">
            <ul>
                <li><a href="#one">1</a></li>
                <li><a href="#two">2</a></li>
            </ul>
        </div><!-- /navbar -->

        <div id="one">

            <div class="ui-corner-all custom-corners">
                <div class="ui-bar ui-bar-a">
                    <h3>1</h3>
                </div>

                <div class="ui-body ui-body-a">
                    <img class="pic" src="img/1.jpg">
                    <fieldset class="ui-grid-a">
                        <div class="ui-block-a"><p class="price">100</p></div>
                        <div class="ui-block-b"><p class="discount">80</p></div>
                    </fieldset>
                    <a href="orderinfo.php?type=11" class="ui-btn ui-shadow">order</a>
                </div>
            </div>


            <div class="ui-corner-all custom-corners">
                <div class="ui-bar ui-bar-a">
                    <h3>2</h3>
                </div>

                <div class="ui-body ui-body-a">
                    <img class="pic" src="img/2.jpg">
                    <fieldset class="ui-grid-a">
                        <div class="ui-block-a"><p class="price">100</p></div>
                        <div class="ui-block-b"><p class="discount">80</p></div>
                    </fieldset>
                    <a href="orderinfo.php?type=12" class="ui-btn ui-shadow">order</a>
                </div>
            </div>


            <div class="ui-corner-all custom-corners">
                <div class="ui-bar ui-bar-a">
                    <h3>3</h3>
                </div>

                <div class="ui-body ui-body-a">
                    <img class="pic" src="img/3.jpg">
                    <fieldset class="ui-grid-a">
                        <div class="ui-block-a"><p class="price">100</p></div>
                        <div class="ui-block-b"><p class="discount">80</p></div>
                    </fieldset>
                    <a href="orderinfo.php?type=13" class="ui-btn ui-shadow">order</a>
                </div>
            </div>

        </div>

        <div  id="two">


            <h3 class="ui-bar ui-bar-a ui-corner-all">1</h3>
                <div class="ui-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan blandit fermentum. Pellentesque cursus mauris purus, auctor commodo mi ullamcorper nec. Donec semper mattis eros, nec condimentum ante sollicitudin quis. Etiam orci sem, porttitor ut tellus nec, blandit posuere urna. Proin a arcu non lacus pretium faucibus. Aliquam sed est porttitor, ullamcorper urna nec, vehicula lorem. Cras porttitor est lorem, non venenatis diam convallis congue.</p>
                </div>

            <h3 class="ui-bar ui-bar-a ui-corner-all">2</h3>
                <div class="ui-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan blandit fermentum. Pellentesque cursus mauris purus, auctor commodo mi ullamcorper nec. Donec semper mattis eros, nec condimentum ante sollicitudin quis. Etiam orci sem, porttitor ut tellus nec, blandit posuere urna. Proin a arcu non lacus pretium faucibus. Aliquam sed est porttitor, ullamcorper urna nec, vehicula lorem. Cras porttitor est lorem, non venenatis diam convallis congue.</p>
                </div>

            <h3 class="ui-bar ui-bar-a ui-corner-all">3</h3>
                <div class="ui-body">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan blandit fermentum. Pellentesque cursus mauris purus, auctor commodo mi ullamcorper nec. Donec semper mattis eros, nec condimentum ante sollicitudin quis. Etiam orci sem, porttitor ut tellus nec, blandit posuere urna. Proin a arcu non lacus pretium faucibus. Aliquam sed est porttitor, ullamcorper urna nec, vehicula lorem. Cras porttitor est lorem, non venenatis diam convallis congue.</p>
                </div>

        </div>

    </div>

</div><!-- /content -->

<div data-role="footer" data-position="fixed">
    <h4>Powered by ATekNetwork</h4>
</div><!-- /footer -->
</div><!-- /page -->

</body>
</html>

Below is the orderinfo.php

<!DOCTYPE html>
<head>
<title>info</title>
<!--prevent from become to big on desktop-->
<meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css" />
<!--import the JQuery JSlib-->
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>


<!--Custom JavaScript-->
<script type="text/javascript">

    function disableOption()
    {

        //using flag to determin the selected options
        var flag;

        var objToday = new Date();

        //curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours());
        //get the time from the client device  NOTICE bug: if the time from the device is wrong may cause problem.
        curHour = objToday.getHours();

        if(curHour < 11){
            flag = 0;
            console.log("hello");
        }
        else if(curHour >= 11 && curHour < 12){
            flag = 1;
        }
        else if(curHour >= 12 && curHour < 13){
            flag = 2;
        }
        else{
            flag= 3;
        }


        console.log(curHour);
        var select = document.getElementById('select-choice-1');

        if(flag == 0){

            for (var i=0, option; option = select.options[i]; i++)
            {
                option.disabled = false;

            }

            //emulate(select);
        }

        if(flag == 1){

            for (var i=1, option; option = select.options[i]; i++)
            {
                option.disabled = false;

            }
            //emulate(select);

        }

        if(flag == 2){

            for (var i=2, option; option = select.options[i]; i++)
            {
                option.disabled = false;

            }
            //emulate(select);

        }

        if(flag == 3){

            for (var i=0, option; option = select.options[i]; i++)
            {
                option.disabled = true;

            }
            //emulate(select);

        }


    }
</script>
<!--Custom CSS-->
<style>


</style>
</head>
<body onload="disableOption()">

<div data-role="page" class="page">

<div data-role="header" style="overflow:hidden;" data-position="fixed">
    <h1>info</h1>
        <a href="#" data-icon="gear" class="ui-btn-right">option</a>

</div><!-- /header -->

<div role="main" class="ui-content" class="jqm-main">

<?php

    $type = $_GET['type']; 
    $info = "";

    if($type == 11){

        $info = "1";

    }

    if($type == 12){

        $info = "2";

    }

    if($type == 13){

        $info = "3";

    }

?>

<h3 class="ui-bar ui-bar-a ui-corner-all">info</h3>



<form action="sendmail.php" method="get">
    <ul data-role="listview" data-inset="true">
                    <li class="ui-field-contain">
                        <label for="name">name</label>
                        <input type="text" name="name" id="name" data-clear-btn="true">

                    </li>


                    <li class="ui-field-contain">
                        <div class="ui-field-contain">
                        <label for="textinput-disabled">type</label>
                        <input readonly="readonly" type="text" name="textinput-disabled" id="textinput-disabled" placeholder="Text input" value="<?php echo $info;?>">
                        </div>

                    </li>

                    <li class="ui-field-contain">
                        <label for="phone">phone</label>
                        <input type="text" name="phone" id="phone" data-clear-btn="true">

                    </li>


                    <li class="ui-field-contain">
                        <label for="address">adress</label>
                        <input type="text" name="address" id="address" data-clear-btn="true">

                    </li>

                    <li class="ui-field-contain">

                        <label for="slider-2">num</label>
                        <input type="range" name="slider-2" id="slider-2" data-mini="true" data-highlight="true" min="0" max="40" value="1" data-clear-btn="true">

                    </li>


                    <li class="ui-field-contain">

                        <div data-role="fieldcontain">
                        <label for="select-choice-1" class="select">time</label>
                        <select name="select-choice-1" id="select-choice-1">
                                <option disabled="disabled" value="11-12">11-12</option>
                                <option disabled="disabled" value="12-1">12-1</option>
                                <option disabled="disabled" value="1-2">1-2</option>
                        </select>
                        </div>


                    </li>

                    <li class="ui-body ui-body-b">
                        <fieldset class="ui-grid-a">
                            <div class="ui-block-a"><button type="reset" class="ui-btn ui-corner-all ui-btn-a">reset</div>
                            <div class="ui-block-b"><button type="submit" class="ui-btn ui-corner-all ui-btn-a" data-ajax="false">submit</div>
                        <fieldset>
                    </li>

                </ul>

</form><!--end form-->
</div><!-- /content -->

<div data-role="footer" data-position="fixed">
    <h4>Powered by ATekNetwork</h4>
</div><!-- /footer -->
</div><!-- /page -->

</body>
</html>

Finaly I find the problem, the problem is that weird problem in JQuery mobile. if you Put Your script code in the head element .It will not load into the dom till the web refresh.

So we can put the scripts into the tag below.

<div data-role="page" class="page">

<script>
//your javascirpt code goes here
</script>
</div>

and it works..

  • 写回答

2条回答 默认 最新

  • donqh00404 2014-08-13 02:48
    关注

    You should load your script at the bottom of the page, it is a better practice, that way it loads after the page. Also, if you are using HTML5, you should no longer have to declare the script type.

    <html>
    <head>
    
    </head>
    <body>
    
        <!-- your content -->
    
    
    
        <script>
        function disableOption(){
            console.log("hello");
        }
        disableOption();
        </script>
    </body>
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器