2009-07-10 80 views
0

我不确定这是否仅发生在我身上。基本上,如果我有一个新的元素添加到页面中使用了YUI从表单输入中检索字段值动态生成

var element = new YAHOO.util.Element(document.createElement('input')); 
element.set('value', 'some value'); 
element.appendTo(document.body); 

然后我使用这些不同的方式读取元素的值,并得到一致的结果

element.get('value'); // get 'some value' 
element.get('element').getAttribute('value'); // get 'some value' 
element.get('element').value; // get 'some value' 
// jquery as reference 
jQuery(element.get('element').val()); // get 'some value' 

如果我改变字段值通过浏览器(例如,“新价值”),并再次重复上述步骤,我得到了一些有趣的值

element.get('value'); // get 'some value' 
element.get('element').getAttribute('value'); // get 'some value' 
element.get('element').value; // get 'new value' 
// jquery as reference 
jQuery(element.get('element').val()); // get 'new value' 

然而,如果输入的元素已经存在于页,是目前持股用户输入 - >“一些值”

var element2 = new YAHOO.util.Element('some_input'); 

首先读得到相同的结果如上述方案

element.get('value'); // get 'some value' 
element.get('element').getAttribute('value'); // get 'some value' 
element.get('element').value; // get 'some value' 
// jquery as reference 
jQuery(element.get('element').val()); // get 'some value' 

如果用户输入通过浏览器“新值”输入栏,然后重复上述步骤得到

element.get('value'); // get 'new value' 
element.get('element').getAttribute('value'); // get 'new value' 
element.get('element').value; // get 'new value' 
// jquery as reference 
jQuery(element.get('element').val()); // get 'new value' 

我只是想知道为什么我会得到动态生成的元素不同的值,如果使用检索数据的方式不同,或者它仅仅是因为我做的它错了吗?

回答

1

弹出的旧值可能是缓存问题。

我在这里使用最新的YUI库建立你的例子:http://tivac.com/yui2/jeffrey04_element.htm(你会想让Firebug打开)。

使用正确的

element.get('value'); 

呼叫正在恢复,我在这两种情况下正确的值。


不知道为什么

element.get('element').getAttribute('value') 

被返回null虽然有时。

如果你可以缩小它返回一个不正确的值的情况下,我会创建一个简单的测试用例和submit a bug。他们非常感谢这样的反馈,并且通常能够快速响应并解决问题。

+0

谢谢,我仍然使用YUI2.6所以不确定是否在最新版本中修复了一些问题。我在调用DOM的getAttribute方法时也得到了null。我的测试运行结果 element.get( '值'): “一些价值” element.get( '元素')的getAttribute( '值'):空 element.get( '元素')值: “value value” element2.get('value'):“new value” element2.get('element')。getAttribute('value'):“some value” element2.get('element')。value :“新价值” – Jeffrey04 2009-07-14 07:53:18