首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法使用JQuery删除搜索文本框的内容

无法使用JQuery删除搜索文本框的内容
EN

Stack Overflow用户
提问于 2015-11-24 02:44:32
回答 2查看 45关注 0票数 0

在我的屏幕上,我搜索一个合同,当我选择它时,我会得到合同的相关数据。一旦我选择了一个合同,我希望合同标题呈现在页面的其他地方。我可以这样做,但合同标题也会在搜索文本框中呈现,我不想这样做。所以在我的代码中;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <div class="col-md-12">
        <span style="margin-right: 10px;">Find a Contract</span>
        <span style="margin-right: 50px;">
            <input type="search" id="searchtermContract" class="contractTitle"
                   data-msurvey-autocomplete="@Url.Action("Contract", "Autocomplete")"
                   data-msurvey-autocomplete-update-id="#ContractId"
                   data-msurvey-autocomplete-update-label="#ContractTitle1" 
                   data-msurvey-populate-search-textbox-flag="N"/>
        </span>
        <input type="button" id="ResetContract" value="Reset"
               style="margin-left: -40px;"
               class="btn-mulalley btn-xs reset"
               data-msurvey-reset-field="#searchtermContract"
               data-msurvey-reset-id="#ContractId" />
        <input type="hidden" id="ContractId" name="ContractId" />
        <input type="hidden" id="ContractTitle1" name="ContractTitle1" />
    </div>
</div>
<div id="propertiesForContract">

</div>

在我的javascript里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var getPropertiesForContract = function (contractId) {
    var url = GetHiddenField("msurvey-get-properties-for-contract-url").replace(/__ID__/, contractId);
    $('#propertiesForContract').load(url);
    // TODO this line is not working
    $("#searchtermContract").val("");
};

在IE开发工具中,它显示了searchtermContract没有值,但是仍然显示了所选的契约。为什么会这样呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input class="contractTitle ui-autocomplete-input" id="searchtermContract" type="search" data-msurvey-autocomplete-update-label="#ContractTitle1" data-msurvey-autocomplete-update-id="#ContractId" data-msurvey-autocomplete="/(S(jdfx1zrfoqjcrsyb0ltueuyp))/Autocomplete/Contract" data-msurvey-populate-search-textbox-flag="N" autocomplete="off">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-24 04:19:25

jQuery.load()是异步的,所以当它调用服务器并返回结果时,您的$("#searchtermContract").val("");代码行已经运行(它将值设置为null,然后被load()方法的结果覆盖。相反,将代码更改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('#propertiesForContract').load(url, function() {
   $("#searchtermContract").val("");
});

,以便在回调中设置值。

票数 1
EN

Stack Overflow用户

发布于 2015-11-24 05:00:34

jquery ()函数本质上是异步的,这意味着即使load()尚未完成,调用load()下面的所有代码都将立即运行。您可以使用load() jquery函数的完整回调函数,这样回调中的代码将在load()函数完成后运行。阅读http://api.jquery.com/load/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33891487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文