2013-03-04 29 views
0

对不起,如果我重复已经解决的问题。我的PhoneGap基础的认证过程:PhoneGap - 未捕获ReferenceError:函数未在文件中定义

AVD:安卓4.2.2

<head> 
    <script type="text/javascript" charset="utf-8" src="js/jquery-1.8.3.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.2.0.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="cordova-2.4.0.js"></script> 
    <script type="text/javascript" charset="utf-8" src="main.js"></script> 
</head> 
<body> 
<form id="loginForm"> 
    <div data-role="fieldcontain" class="ui-hide-label"> 
     <input type="text" name="username" id="username" value="" /></div> 
    <div data-role="fieldcontain" class="ui-hide-label"> 
     <input type="password" name="password" id="password" value="" /></div> 
    <div data-role="fieldcontain" class="ui-hide-label"> 
     <select name="coursetype" id="coursetype"> 
      <option value="1">Type 1</option> 
      <option value="2">Type 2</option> 
     </select></div> 
    <!-- Below is 43th line --> 
    <input type="submit" value="Login" id="submitButton" onclick="handleLogin();" /> 
</form> 
</body> 

与适当的代码过程中main.js

function handleLogin() { 
    var form = $("#loginForm"); 
    var u = $("#username", form).val(); 
    var p = $("#password", form).val(); 
    var t = $("#coursetype", form).val(); 
    if(u!= '' && p!= '' && t!= '') { 
     alert('Values are: ' +u+ ' & ' +p+ ' & ' +t); 
    } else { 
     alert('Field(s) were empty'); 
    } 
} 

点击登录按钮它说以下内容:

Uncaught ReferenceError: handleLogin is not defined at file:///android_asset/www/index.html:43 

任何h elp将不胜感激。

+0

main.js与index.html位于同一个文件夹中?它不在js文件夹中?因此,你只是把错误的路径。 – dan 2013-03-04 15:52:25

+0

@dan是的,'index.html'和'main.js'都在同一个文件夹 – Dozent 2013-03-04 22:35:09

+0

我知道这听起来很奇怪,但试着将cordova脚本标记移动到最后。我注意到一些奇怪的行为,取决于我在哪一部分加载cordova和其他脚本。 – jylauril 2013-03-05 01:27:07

回答

0

尝试取出的onclick,而是有这样的main.js

$('document').ready(function() { 
    $('#submitButton').on('click',function (e) { 
     e.preventDefault(); 
     var form = $("#loginForm"); 
     var u = $("#username", form).val(); 
     var p = $("#password", form).val(); 
     var t = $("#coursetype", form).val(); 
     if(u!= '' && p!= '' && t!= '') { 
      alert('Values are: ' +u+ ' & ' +p+ ' & ' +t); 
     } else { 
      alert('Field(s) were empty'); 
     } 
    }) 
}) 

我从来没有真正信任的onclick,很多的原因,我认为它可能是这个问题。

相关问题