2016-09-03 11 views
-2

私は、同様の質問がここで尋ねられていることを認識しています。しかし、私はJavascript関数から要素に値を設定したいという点で異なっています。document.getElementById()。値がFirefoxで動作しない

同様の質問に対する回答は私の問題には合致せず、解決しませんでした。

私は、次のコードを持っている:

function getItems() { 
         var sixOrLower = ["1", "2", "3", "4", "5", "6"]; 
         var higherThanSix = ["7", "8", "9", "10", "11", "12"]; 
         var arr = ["one", "two", "three", "four", "five", "six"]; 
         for(i=0; i<sixOrLower.length; i++){ 
          document.getElementById(arr[i]).value = sixOrLower[i]; 
         } 

         var arr2 = ["seven", "eight", "nine", "ten", "eleven", "twelve",]; 
         for(j=0; j<higherThanSix.length; j++){ 
          document.getElementById(arr2[j]).value = higherThanSix[j]; 
         } 
         document.getElementById("f").submit(); 
       } 

sixOrLowerとhigherThanSixは、他の目的を持っていない他の機能によって充填されている配列です。これは正常に動作します。フォームが、私は、サーバーサイドスクリプト内のフィールドを使用したい提出された場合

<form class="f" id="f" name="f" action="<? echo htmlspecialchars($_SERVER['PHP_SELF']);?>" enctype= 
     "multipart/form-data" method="post"> 
        <input type="hidden" name="one" id="one" value=""> 
        <input type="hidden" name="two" id="two" value=""> 
        <input type="hidden" name="three" id="three" value=""> 
        <input type="hidden" name="four" id="four" value=""> 
        <input type="hidden" name="five" id="five" value=""> 
        <input type="hidden" name="six" id="six" value=""> 
        <input type="hidden" name="seven" id="seven" value=""> 
        <input type="hidden" name="eight" id="eight" value=""> 
        <input type="hidden" name="nine" id="nine" value=""> 
        <input type="hidden" name="ten" id="ten" value=""> 
        <input type="hidden" name="eleven" id="eleven" value=""> 
        <input type="hidden" name="twelve" id="twelve" value=""> 
        <button id="but_order" onclick="getItems();">Do stuff</button> 
</form> 

今私は、私は上記のコードから値を格納するフィールドを隠されたフォームを持っています。しかし、隠された入力フィールドはFirefoxでは埋められません。 ChromeとIEでは正常に動作します。だから問題は:Firefox用にこれを修正するにはどうすればいいですか?

+0

'sixOrLower'と' higherThanSix'が定義されていなかったために表示されます。ここでは

は、例ソリューションです。あなたは 'arr'と' arr2'を意味しましたか? 'all'と' allprice'も定義されていません。 – Makyen

+0

申し訳ありませんが、わかりやすくなるようにコードを調整しました。 sixOrLowerとhigherThanSixはすでに定義されています。だからそれは問題ではありません。 – PeZ

答えて

0

ボタンのマークアップを特定のタイプ(「ボタン」)に変更すると、デフォルトで「送信」ボタンを使用する代わりに、これが問題を解決します。

<button id="but_order" type="button" onclick="getItems();">Do stuff</button>

発生している問題は、フォームで定義された唯一のボタンがのgetItems()関数が呼び出される前に、「提出」ボタンとフォームが、その後に提出されているにデフォルト設定されていることです。 https://jsfiddle.net/nmiddleweek/8dpzkfqo/11/

乾杯、 ニック

+0

私はそれに型= "ボタン"を与えれば、それ以上何もしません。私はボタンをクリックすることができますが、何もしません。 – PeZ

+0

おそらく、onclickハンドラはgetItems()関数を「見る」ことができません。ボタンをクリックすると、コンソールにエラーが表示されますか? –

+0

サンプルソリューションを含むように更新されました –

関連する問題