2

我一直在为这个问题挠头,最后决定隔离这个问题。

所以我有一个显示视图的控制器。该视图非常基本,带有输入和提交按钮。单击提交时,URL 将更改为下一个被调用的视图,但实际视图并未加载到浏览器中。按 f5 可以更正此问题,但无需手动干预,视图永远不会加载。

这似乎是 jquery / jquery ui 和 jquery mobile 的问题,而不是 codeigniter。

这是我的第一个观点:

<html>
   <head>
      <title>
        Link Orders
      </title>

     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
     <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> 
     <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

   </head>
<body>

    <form action="/sales/order_linking_complete"  method="post">

      <input type="text" id="ordernumber" name="ordernumber" />      
      <input type="submit" value="Link Orders">

</form>
</body>
</html>

这是控制器:

function order_linking_complete() 
  {
      $this->load->view('sales/link_order_summary');
  }

这是第二种观点:

<?php
  echo "test";
?>

<script type="text/javascript">
alert('test');
</script>

如果我采取以下两行

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

并交换它们

然后它可以工作,但我不知道为什么。任何解释。

问题是我的完整页眉中有以下内容:

 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> 
 <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
 <link rel="stylesheet" href="/css/sales.css" />

如果我在这种情况下将 jquery mobile 放在首位,则不会加载所有正确的格式和布局。

我怎样才能让它正常工作,希望我已经充分解释了这一点。如果需要,请询问更多信息。

一如既往地感谢...

4

1 回答 1

3

To successfully submit a form in jQuery Mobile in a normal way you will need to add additional attribute data-ajax="false", only and only then will form submit to another page, otherwise it will use ajax for form sumbition.

In your case it would be:

<form action="/sales/order_linking_complete"  method="post" data-ajax="false>
    <input type="text" id="ordernumber" name="ordernumber" />      
    <input type="submit" value="Link Orders">
</form>

Also don't use jQuery Mobile unless you are going to use its fully potential. It will case problems if mixed with normal pages.

于 2013-05-28T08:28:27.210 回答