-1

我用流星火焰构建了一个应用程序,现在我正在尝试用 CodeceptJS 对其进行测试。问题是,我的所有输入字段在 DOM(F12 模式)中都没有值,但我在浏览器中看到了这些值。在流星中,我使用模板助手从我的 MongoDB 集合中读取它们并将它们传递给 blaze / spacebars。因此,meteor 使用 JavaScript 实时写入所有值(在网站完全加载/生成之后)。

我有一个值为“codeceptjs”的输入字段。但我在 DOM 中看不到它(chrome:F12 模式)。它只向我展示了这个:

<div class="input"><input data-title type="text" title="Todo Title"></div>

但是,在我的 Meteor blaze 文件中,我有以下内容:

<div class="input"><input data-title type="text" value={{title}} title="Todo Title"></div>

JQuery 也找不到它们,因为 DOM 中没有值:

jQuery('input[value="codeceptjs"]').length
0

如何在不更改工作应用程序的情况下使用 jQuery / codeceptjs 访问实时输入值?

4

2 回答 2

1

首先,我认为您获取输入值的 jQuery 是错误的。如果您在输入框中的值更改为“codeceptjs”,那么您的 jQuery 选择器将找不到已经更改的值。这就是为什么您使用 jQuery 选择器得到零的原因。通过给它一个 id 或 name 值来更好地选择输入:

<div class="input"><input id="codeceptjs" type="text" title="My Title"></div>

如果将 id 添加到输入标签中,则可以在输入框中获取字符串的长度,如下所示:

$('#codeceptjs').val().length;
于 2017-02-01T17:13:35.357 回答
0

我实时假设您的意思是在网页(DOM)完成加载后添加该值。如果是这种情况,那么您需要使用 JQuery 上下文选择器。

    jQuery('input[value="codeceptjs"]', '.input').length
于 2017-02-01T17:12:29.343 回答