2010-03-25 39 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