2011-06-25 71 views
1

Internet Explorer 7不能正確處理按鈕,因爲它發送的文本是<button></button>之間的文本而不是值。 (奇怪,但真實。)這個Javascript應該通過發送按鈕onClick的值來糾正這種情況。但它不起作用。任何人都可以看到錯誤?Javascript Web瀏覽器腳本不能正常工作

我用這個附加JavaScript文件中HTML5:buttonfix.js的

<script src="buttonfix.js"></script> 

內容:

function runonclick() 
{ 
    var count = 0; 
    var formlength = this.form.elements.length; 
    while(count < formlength) 
    { 
     if(this.form.elements[count].tagName === "button") 
     { 
      this.value = this.attributes.getNamedItem("value").nodeValue; 
     } 

     count++; 
    } 
} 

function buttonfix() 
{ 
    var buttonarray = document.getElementsByTagName("button"); 

    var count = 0; 
    var buttonarraylength = buttonarray.length; 
    while(count < buttonarraylength) 
    { 
     buttonarray[count].onClick = runonclick(); 

     count++; 
    } 
} 

window.attachEvent("onload", buttonfix()); 
+1

什麼*不起作用*? –

+0

@Felix Kling Javascript不會使按鈕發送值而不是文本。我使用jslint,因此問題不能與語法相關。 –

回答

1

我建議你嘗試:

if(this.form.elements[count].tagName.toLowerCase == "button"); 

代替:

if(this.form.elements[count].tagName == "button") 

因爲tagName屬性通常返回大寫字符串。

另一條線不工作:

buttonarray[count].onClick = runonclick(); 

如JavaScript是區分大小寫的語言,你必須使用事件(onclick)的標準名稱。

buttonarray[count].onclick = runonclick(); 

但是,您仍然可以在你的HTML(而不是XHTML)使用onClick

+1

+1爲好。 http://reference.sitepoint.com/javascript/Element/tagName –

+0

它仍然無法正常工作。 –