Jquery Mobile $('#idoftheinputfield')。val()始终返回输入的第一个值

时间:2013-05-12 12:40:47

标签: jquery jquery-mobile

在查看几个相关帖子几天之后,我决定发布这个问题,但我仍然没有答案。

我有一个带有“搜索”类型的输入字段的jquery移动页面,并且如果按下回车键,则该字段具有用于调用具有当前字段值的另一页面的键盘功能。我第一次键入一个值并按回车键,一切正常。但接着,它总是获得我输入的第一个值(前一个值)并且永远不会获得新更改的值。我看过相关的帖子,但无法找出问题的解决方案。到目前为止,我在计算机和移动设备上测试过的所有浏览器的问题都是一样的。

这是输入字段

<div class="content-primary" data-dom-cache="false">
        <input type="search" name="finddata" id="search-team" value="Find Data" data-inline="true"/>
</div>

这是脚本函数

$(document).on('keyup','#search-team',hndlSearchTmKeyup);

function hndlSearchTmKeyup(event) {
    if (event.which == 13) {
         alert("search!oo! ="+$("#search-team").val());     
         window.location.assign("/myapp/mysearchpage.jsp?findTmNm="+$("#search-team").val())
         return false;
    }
}    

经过进一步测试后,我发现如果我只是在hndlSearchTmKeyup函数中显示警报而不调用window.location.assign,它会正确显示新值。当我包含window.location.assign时,当我单击“主页”按钮并返回到原始页面并再次输入新值并按回车键时,它会显示旧值。不知道发生了什么。

1 个答案:

答案 0 :(得分:0)

经过进一步研究后,它似乎与jquery mobile中的已知问题有关,无论如何都会缓存第一页。

How does one disable Caching in jQuery Mobile UI

我实现了该线程中记录的一个解决问题的解决方法(@KCD建议的那个)