我正在拉我的頭髮。我有這個javascript的異步獲取事件日曆的數據。基本上,當你點擊一個月的某一天時,會彈出一個小的UI,並且文本區域會被獲取的數據填充。在此UI上有兩個提交按鈕:一個用於保存更改,另一個用於刪除事件(如果存在)。我的目標是禁用刪除按鈕,除非文本區域填充了事件。這裏是我的代碼:除Firefox以外的每個瀏覽器的Javascript錯誤
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;
火狐處理它只是罰款,但Safari瀏覽器,Chrome瀏覽器,Opera和IE都扔噓聲像擬合。他們恢復到我沒有啓用JavaScript的用戶的後備功能。我究竟做錯了什麼?
Chromes調試器說了什麼? – 2010-07-23 22:25:17
使用jQuery !!!!! – ChaosPandion 2010-07-23 22:26:55
我其實沒有看。但我並不十分熟悉如何使用它。我會看看我能否弄清楚。 – vince88 2010-07-23 22:27:22