2013-07-26 40 views
1

OnClick函數上的錯誤。錯誤是「不能從外面返回一個函數或方法」。OnClick函數上的錯誤

HTML

<table width="100%" border="0" cellspacing="0" cellpadding="0" height=atuo class="table_content"> 
     <tr class="tr_title" align="center"> 
      <td align="center" width="1%" class="table_content_td"> 
       <input name="chkall" type="checkbox" id="chkall" onClick="return cf_checkall('this.document.form1.chkdel',this.checked);" helpid="14"> 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       RN 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Driver Name 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Phone Number 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Vehicle Number 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Fueled in Ltrs 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Fueling Time 
      </td> 
      <td nowrap width="12%" align="center" class="table_content_td"> 
       Region 
      </td> 
      <td nowrap width="15%" align="center" class="table_content_td"> 
       Assign To Department 
      </td> 
     </tr> 

當我運行該項目,然後會顯示以下錯誤。請幫助我如何刪除這些錯誤。我認爲它的ClassPath或環境變量的錯誤。有人指導我如何將classpath設置或設置環境變量爲WebLogic

The WebLogic Server did not start up properly. 
java.io.InvalidClassException: javax.management.MBeanAttributeInfo; local class  incompatible: stream classdesc serialVersionUID = 7043855487133450673, local class serialVersionUID = 8644704819898565848 
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) 
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) 
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480) 
at javax.management.MBeanInfo.readObject(MBeanInfo.java:669) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
+0

**的Java * *與Javascript **完全不同。o檢查如何使用onClick:http://reference.sitepoint.com/html/event-attributes/onclick。你只需要函數名稱。 – BLaZuRE

+0

可能是編輯器的假陰性。請參閱http://stackoverflow.com/a/8930948。 –

+0

你的意思是我不需要把回報放在Onclick – Programmer

回答

2

不要放的onclick方法內返回,用這個來代替:

onClick="javascript:cf_checkall('this.document.form1.chkdel',this.checked);" 

你既不需要什麼回報你功能,因爲輸入複選框不是一個提交按鈕,然後沒有事件被觸發,除了onclick。

什麼就做什麼,你需要在你的函數做:火災事件等

+0

我會嘗試一下,然後告訴你 – Programmer

+0

兄弟我發現有錯誤 WebLogic Server沒有正確啓動。 java.io.InvalidClassException:javax.management.MBeanAttributeInfo;局部類不相容:流classdesc的serialVersionUID = 7043855487133450673,局部類的serialVersionUID = 8644704819898565848 \t在java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) \t在java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) \t在java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) \t在java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:15 – Programmer

+0

@JonathanLonowski你的意思是我不刪除裏面? 那麼如何回報stament eror刪除兄弟我很困惑:( – Programmer

2

正如我所說的在我的評論中,onclick參數將接受JavaScript,但通常的功能在這裏使用。這取決於返回的功能,而不是在這裏。因此,

onClick="return cf_checkall('this.document.form1.chkdel',this.checked);" 

應該

onClick="cf_checkall('this.document.form1.chkdel',this.checked);" 

此外,請確保您的函數定義正確和返回一個值。

+0

好吧夥計l等我再次檢查可能是我犯了一些錯誤 – Programmer

+0

屬性內額外的'return'是一個用於取消事件的選項 - 阻止它傳播/冒泡。沒有它,'cf_checkall()'裏面的'return'將不會對此產生任何影響。 –

+0

@JonathanLonowski你的意思是我沒有刪除內部的回報? – Programmer

2

您列出的錯誤看起來不是SyntaxError,而是validation error that your editor is producing。而且,聲稱這是一個錯誤似乎是錯誤的。

一個onclick attribute becomes a function body for the onclick property,其中使用return是有效的值:

不同於相應的屬性,這些屬性的值是函數(或實現EventListener接口的任何其它物體)而不是字符串。實際上,在HTML中分配一個事件屬性會在指定的代碼周圍創建一個包裝函數。例如, 給出以下HTML:

<div onclick="foo();">click me!</div> 

如果element是這個div一個參考,element.onclick值實際上是:

function onclick(event) { 
    foo(); 
} 

我不知道你怎麼能說服編輯器認爲「錯誤」不是真實的,除非完全禁用JavaScript驗證。

但是,你可以做的是將<script>中的綁定與onclick property而不是屬性(即,「不顯眼」 的JavaScript):

document.getElementById('chkall').onclick = function() { 
    return cf_checkall('this.document.form1.chkdel', this.checked); 
}; 

注意:這將需要在標記的<input>後或內的另一個事件處理程序chkall可用:

window.onload = function() { 
    document.getElementById('chkall') // etc...; 
};