从动态生成的表单输入中检索字段值

发布于 2024-07-27 17:33:16 字数 1616 浏览 2 评论 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'

,得到与上述场景相同的结果,然后重复上述步骤,我只是想知道为什么动态生成的元素的值不同,为什么会得到不同的值使用了检索数据的方式,或者只是因为我做错了?

I am not sure whether this only happens to me. Basically if I have a new element added to the page using YUI

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

Then I read the value of the element using these different ways, and get consistent result

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'

If I change the field value through the browser (for example, 'new value'), and repeat the above steps again, i get some interesting values

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'

However, if the input element is already exists in the page and is currently holding user input -> 'some value'

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

First read get same result as above scenario

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'

if the user enters 'new value' to the input field through the browser, then repeating the above steps gets

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'

I am just wondering why would I get different values for dynamically generated element if different way of retrieving data is used, or it is just because I am doing it wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天旳寂寞 2024-08-03 17:33:16

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

我在这里使用最新的 YUI 库构建了您的示例: http://tivac.com/yui2/jeffrey04_element.htm (您需要打开 Firebug)。

在这两种情况下,使用正确的

element.get('value');

调用都会为我返回正确的值。


但不确定为什么

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

有时会返回 null。

如果您可以缩小返回错误值的范围,我将创建一个简单的测试用例并提交错误。 他们非常感谢这样的反馈,并且通常会快速响应和解决问题。

Old values popping up might be a caching issue.

I built your example using the latest YUI libraries here: http://tivac.com/yui2/jeffrey04_element.htm (you'll want to have Firebug open).

Using the correct

element.get('value');

calls is returning the proper value for me in both cases.


Not sure why

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

is returning null sometimes though.

If you can narrow down the cases where it's returning an incorrect value I would create a simple test case and submit a bug. They really appreciate feedback like that and are generally fast to respond and fix issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文