2011-06-25 11 views
1

Internet Explorer 7は、値ではなく<button></button>の間のテキストを送信するため、ボタンを正しく処理しません。 (奇妙だが真実。)このJavaScriptはボタンonClickの値を送信することでこれを修正することになっています。しかし、それは動作しません。誰もがエラーを見ることができますか?JavaScriptのWebブラウザスクリプトが機能しない

私は、HTML5でのJavaScriptファイルを添付するためにこれを使用します。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

それでも動作しません。 –

関連する問題