2010-03-25 74 views
1

我正在使用jquery代碼處理語言翻譯,我在之前的文章中已經獲得了處理大多數文本和ajax翻譯的代碼。無法使用Google Chrome和jQuery獲得輸入類型提交/輸入

而且這個代碼甚至可以在Firefox 100%,但對谷歌的Chrome 5.0.365.2開發

  $("input:button,input:submit").each(function() { 
      var value = $(this).val(); 
      // check if there is value 
      if (value != undefined) { 
       for (var x = 0; x < en_count; x++) { 
        var from = en_lang[x]; 
        var to = toCache[x]; 
        // if node has data translated skip it 
        var ist = $(this).data('translated'); 
        if (ist != 'yes') { 
         if (value.match(from)) { 
          value = to; 
          $(this).attr('value',to); 
         } 
        } 
       } 
      } 
     }); 

進行測試時,該代碼之前,我創建2陣列的1英語和1的其他語言。

en_lng包含此頁面上英文文本的數組。 toCache包含其他語言的數組,我正在翻譯。

爲了確保不會多次翻譯一段文字,我正在使用數據屬性並存儲「已翻譯」的值。

所以最後,這段代碼只是用於翻譯輸入按鈕/提交文本。

謝謝....

+1

也許谷歌瀏覽器不會返回未定義的按鈕沒有值? – 2010-03-25 17:00:47

+0

這些按鈕的價值爲「轉到」或「提交」。順便說一句,谷歌瀏覽器是否需要爲變量定義範圍? – crosenblum 2010-03-25 17:43:23

回答

0

我剛剛在Firefox做了一個測試,它似乎如果有一個輸入沒有價值,它返回一個空字符串,而不是不確定的。因此,它將始終在Firefox中工作(目前我無法測試Chrome)。

嘗試在if語句之前提醒value的值。

+0

我做過了,它似乎傳遞了一個有效的值。我認爲可能會出現谷歌Chrome dom問題,用於替換文本的方法....但我一直在Google上搜索谷歌Chrome dom上的參考/維基。 – crosenblum 2010-03-25 17:41:32

+0

你知道Chrome在你的代碼中走多遠嗎? – Jeremy 2010-03-25 18:06:47

+0

我沒有找到解決方案!所以我改變了我的代碼 – 2011-02-22 13:30:48