我正在开发一个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中我有这两个按钮:
<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错误对我没有意义。
答案 0 :(得分:0)
解决了我的问题的原因是:
$("#form_id").submit(function () {
return false;
});
OnDeviceReady()方法中的。这是因为我有两个相同形式的按钮。我仍然无法解释错误'Cordova已经定义'。