我正在开发一个cordova应用程序-我使用的是cordova 6.2.0。
我得到一个未捕获的错误:点击按钮时,Cordova已经定义。当单击它时,通过使用Javascript删除display:none样式,一些以前隐藏的、按公共类名分组的组件将变得可见。
错误源自JQuery。我尝试了不同版本的jQuery,包括最新版本。奇怪的是,JQuery代码没有在被激发的脚本中使用。页面没有被重新加载。
在html中,我调用这些脚本:
<script src="cordova.js"></script>
<script src="scripts/platformOverrides.js"></script>
<script src="scripts/jquery-1.11.1.min.js"></script>
<script src="js/jquery.mobile-1.4.5.js"></script>
同样在html中,我有这2个按钮:
<button onclick="ForgotPassword()" style="background-color: #f79629; border-style:none; width: 200px; height: 40px; color: white; border-radius:5px;">Send Reset Code</button>
<button class="hideTD" id="CPbtn" onclick="ChangePassword()" style="display:none; background-color: #f79629; border-style:none; width: 200px; height: 40px; color: white; border-radius:5px;">Change Password</button>
正如你所看到的,第二个按钮是隐藏的。单击第一个按钮时,这将与其他组件一起再次显示。
这是JS函数ForgotPassword()的开始:
var username = document.getElementById("Username").value;
if (username != '') {
$.ajax({
type: 'GET',
url: ResetPasswordUrl,
data: { username: username },
success: function (data) {
if (data == '') {
var nodes = document.getElementsByClassName("hideTD");
for (var i = nodes.length, n = 0; n < i; n++) {
nodes[n].style.display = '';
}
alert("A code has been sent to your email address");
单击"发送重置代码"后,将执行上述代码。for循环访问类为hideTD的所有组件,并删除display:none样式。据我所知,没有任何JQuery应该冲突;此外,cordova已经定义错误对我来说没有意义。
是什么解决了我的问题,添加了:
$("#form_id").submit(function () {
return false;
});
在OnDeviceReady()方法中。这是因为我有两个相同形式的按钮。我仍然无法解释错误"Cordova已经定义"。