【发布时间】:2011-03-20 08:44:22
【问题描述】:
我正在为此拉头发。我有一些 javascript 可以异步获取事件日历的数据。基本上,当您单击一个月中的某一天时,会弹出一个小 UI,并且会在文本区域中填充检索到的数据。此 UI 上有两个提交按钮:一个用于保存更改,一个用于删除事件(如果存在)。我的目标是禁用删除按钮,除非文本区域填充了事件。这是我的代码:
function editDialog(date,vis)
{
if(vis == "show")
{
var event="Loading...";
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
event = xmlhttp.responseText;
}
document.getElementById('editwrapper').innerHTML="<div id='editdiv'>\
<div><span class='bold'>"+date+" </span><div style='display: inline; float: right;'><a href='#' onclick=\"return editDialog('"+date+"','hide')\">Close</a></div><hr id='line'> \
<form method='get' action='' onsubmit=\"return editDialog(this.newdate.value, 'show')\">\
<label for='newdate'>Jump to: </label>\
<input type='text' name='newdate' size='10'/>\
<input type='submit' name='go' value='Go'>\
</form>\
<form style='display: inline;' action='' name='saveform' method='get' onsubmit='return instantUpdate(this.date.value,this.event.value)'>\
<textarea name='event' rows='10' cols='40' onkeypress='saveform.edit.disabled=false'>"+event+"</textarea>\
<input type='hidden' name='date' value='"+date+"'>\
<input type='submit' name='edit' value='Save' disabled='disabled'></form> <form name='deleteform' style='display: inline; float: right;' action='' method='get' onsubmit=\"return instantUpdate(saveform.date.value,'')\"> <input name='deletebutton' value='Delete' type='submit'></form>\
</div>\
</div>";
if(event=="" || event=="Loading...") document.deleteform.delete.disabled = true;
}
xmlhttp.open("GET","events.php?action=read&date="+date,true);
xmlhttp.send(); } }
问题出在这句话上:
if(event=="" || event=="Loading...") document.deleteform.deletebutton.disabled = true;
Firefox 处理得很好,但 Safari、Chrome、Opera 和 IE 都非常适合。对于未启用 javascript 的用户,他们恢复为我的后备功能。我做错了什么?
【问题讨论】:
-
Chrome 调试器说了什么?
-
其实我没看。但我不是很熟悉如何使用它。我看看能不能解决。
-
啊,是的,jQuery。我很想使用它,但我想先正确地学习 javascript...
-
@vince88:Jquery 是 javascript。它只是一个框架。用它。真的很值得。
-
不,我明白 jquery 是什么。但我想了解幕后发生的事情,而不是让一切都被易于使用的功能所掩盖。如果我接了一个没有实现 jQuery 的项目怎么办?
标签: javascript html ajax cross-browser