传递给JS函数的默认值未被浏览器读取

时间:2014-11-03 15:54:11

标签: javascript jquery kendo-grid default-value qunit

我正在测试一些客户端代码,我有以下片段:

        <div class="onerow">
            Sign ID: <input type="text" name="signId" id="signId" class="k-textbox" data-bind="value: siteId"/>&nbsp;
            Width: <input type="text" name="width" id="width" class="k-textbox" data-bind="value: width"/>&nbsp;
            Height: <input type="text" name="height" id="height" class="k-textbox" data-bind="value: height"/>
            <input type="button" id="buttonsearch" value="Search" class="k-button" data-bind="events: {click: onSearchClick}"/>
        </div>

在我的测试文件中,我使用jQuery为站点ID设置了一些默认值:

QUnit.asyncTest("List sites with set ID", function() {
    expect(0);
    $("#signId").val(13568);
    setTimeout(function() {
        $("#buttonsearch").click();
        QUnit.start();
    }, 1000);
}

但是,当页面加载时,应该包含&#34; 13586&#34;的函数调用而是空白:

...[field]:signId
...[operator]:=
...[value]:

此时,手动点击该按钮无效,为了使该功能再次起作用,我必须删除默认值,单击按钮,输入Sign ID的值再次然后按下按钮。

理想情况下,我希望它能够立即用于测试目的。我怎么能做到这一点?

**编辑:**

在我的主.js文件中,我的ready()函数中只有以下内容:

$(document).ready(function(){ 
    $("#user-menu").kendoMenu();
    kendo.bind($("#site-search"), siteSearchModel);

});

我的印象是,除了测试功能中的超时之外,绑定到实际站点的时间足以让所有内容都准备就绪。

第二次修改:

此外,如果我在我的QUnit测试功能中放置console.log($("#siteId").val());,则会正确显示该值。可能会发生什么?

0 个答案:

没有答案