2012-12-15 61 views
0

我应该看到:“你好”在提交后,但我没有。为什么?为什么在提交表单后无法更改页面?

http://jsfiddle.net/GbfLG/1/

<div data-role="page" id="create"> 
    <script type="text/javascript"> 
     alert("HERE"); 
     $('#form').submit(function() { 
     $.post("/").success(function(resp) { 
     alert("RET"); 
     $.mobile.changePage($("#final")); 
     }); 
     return false; 
     }); 
    </script> 
    <div data-role="content"> 
     <form id="form"> 
      <input type="submit" name="g" value="Submit" id="g"/> 
     </form> 
    </div> 
</div> 

<div data-role="page" id="final"> 
    Hello 
</div>​ 

回答

0

jQM有一组不同的规则,然后是正常的网页。你在错误的地方使用过你的java脚本。使用jQM,如果可能,请将所有js代码写入单独的文件/文件中。

This是对您的jsFiddle代码的修复,它现在正在工作,我刚刚将它放在正确的上下文中。你的js代码没有改变。

实施例:

$('#create').live('pagebeforeshow',function(e,data){   
    $('#form').submit(function() {  
     $.post("/").success(function(resp) { 
      $.mobile.changePage($("#final")); 
     }); 
     return false; 
    }); 
});  
0

您的形式submiting - 在return false;不工作,因为它应该。 尝试..

$('#form').submit(function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    ... stuff ... 
}); 

而且在拨弄你还没有定义$ .changePage所以它出来为“未定义”。