有没有人知道为什么以下回调不执行其中的代码?我的主window.onload
页面中有一个.html
脚本(唯一一个),由于某种原因,在fadeTo
之后立即调用。
$("#newentryform").fadeTo("fast", .25, function () {
var newentry = prompt("Please enter a new item:", "");
if ((newentry != null) && (newentry != "")) {
var verify = confirm("Press 'OK' to confirm you wish to create a new entry:" + "\n" + newentry);
if (verify == true) {
processnewentry(newentry, dropid);
}
}
});
上述功能是从主onclick
页面中的.HTML
事件调用的。
编辑 - 评论中要求的代码
这是按钮周围的HTML和onclick问题。调用是makenewitem函数 这是上面的功能。
<div id="entryinput">
<p>Item<input type="text" id="createitem" readonly /><button id="createitembutton"onClick="showbuttons(this.id)">Select...</button><button id="createnewitembutton" onClick="makenewitem(this.id)">+ New</button><button id="itemReset" onClick="resetbuttons(this.id)">Reset</button>
<input type="text" id="createitemval" style="display:none" readonly/>
<input type="text" id="createitemindex" style="display:none" readonly/>
</p>
</div>
这是processnewentry函数:
function processnewentry(newentryvalue,dropid) {
if (dropid=="createnewitembutton")
{
dropid="createitem";
}
else
{
dropid="olditem";
}
var createnewItm=document.getElementById(dropid);
createnewItm.value=newitemvalue;
var createnewitemval=document.getElementById(dropid+"val");
createnewitemval.value="";
var createnewitemindex=document.getElementById(dropid+"index");
createnewitemindex.value="1";
$("#newitemform").fadeTo("fast", 1);
var currentPage="newitembuttonpressed";
toggleStatus(currentPage); //disable inputs and buttons in form
var hidebutton=document.getElementById(dropid+"button").style.display="none";
var subdropid=dropid.substr(6);
var hidenewbutton=document.getElementById("createnew"+subdropid+"button").style.display="none";
var displaycreateinput=document.getElementById(dropid).style.display="inline";
}
答案 0 :(得分:6)
如果你的onclick被放置在提交按钮或标签上,那可能与它有关。
你应该在你的按钮点击呼叫中添加return false,如下所示:
<button [...] onClick="showbuttons(this.id); return false;" />
这可以防止发生默认按钮操作(即提交)。
答案 1 :(得分:0)
您可以在方法结束时尝试return false;
。