2012-03-21 41 views
0

javascript関数に情報を渡すFirefoxに問題があります。次のコードはChrome、Safari、Operaで正常に動作します。 IE9にはいくつかの問題がありますが、全体的にはそれが想定されています。Firefoxが入力テキストフィールドからjavascript関数に値を渡さない

Firefoxはコンソールが「クエリが定義されていません」と報告して、onchangeとonclickを無視します。私はこれを回避する方法や別の方法があると知りたいです。

<div class="viewstory_controls_content"> 
       Search 
       <input type="text" id="query" onchange="javascript:submitForm('../scripts/php/search.php', 'search_results',query,'main')" name="query"></input> 
       <button class="viewstory_search" onclick="javascript:submitForm('../scripts/php/search.php', 'search_results', query, 'main')"> 
        <div class="viewstory_search_content"> 
         Search 
        </div> 
       </button> 
      </div> 

提出クエリ:私はブラウザは(私は100%ではないよ注意してください、あなたのスクリプトは、実際にそのname属性queryに等しい場探しをサポートすると言ったので、これがあると思い

function submitForm(url, target, term, type) { 
    // native XMLHttpRequest object 
    term = term.value; 
    url = url + "?term=" + term + "&type=" + type; 
    alert("url:" + url + "\ntarget:" + target + "\nterm:" + term); 
    document.getElementById(target).innerHTML = 'sending...'; 
    if (window.XMLHttpRequest) { 

     req = new XMLHttpRequest(); 
     req.onreadystatechange = function() { 
      jahDone(target); 
     }; 
     req.open("GET", url, true); 
     req.send(null); 
    } 
    else if (window.ActiveXObject) { 
     req = new ActiveXObject("Microsoft.XMLHTTP"); 
     if (req) { 
      req.onreadystatechange = function() { 
       submitFormDone(target); 
      }; 
      req.open("GET", url, true); 
      req.send(); 
     } 
    } 
}​ 
+0

の値を渡します。このsubmitForm()関数は...のように見えますか? –

+0

あなたのエラーが「クエリが定義されていません」で、「クエリ」を初期化する場所を表示していない場合は、あまり役に立ちません。 –

+0

ごめんなさい、その必要があるはずです... –

答えて

1

これで確かに)。私の知る限り、これはFirefoxではうまくいきませんでした。
イベントハンドラのquerydocument.getElementById('query')に置き換えてください。 inputonchangeハンドラでは、queryの代わりにthisを使用することもできます。
また、インラインイベントハンドラでjavascript:を使用しないでください。それは時代遅れです。

+0

優れています。ありがとう! –

+0

ようこそ。受け入れボタンをクリックすることであなたを助けた回答を受け入れることを忘れないでください。 – rhino

0

termは3番目のパラメータです。変数のように関数呼び出しでそこにクエリを渡しています。どこにも定義されていません。フィールドクエリ

関連する問題