0

我有以下代码在 Chrome 和迄今为止我测试过的所有其他浏览器中运行良好:

 <div class="slds-grid slds-wrap">
    <div class="slds-col slds-size--1-of-1 slds-small-size--3-of-4 slds-medium-size--2-of-3 " onkeyup="{!c.enterClicked}">
      <div class="inputWrapper searchInpFastlane" >
        <c:input aura:id="PortalFastlaneSearchBar" value="{!v.searchInput}" type="text" placeholder="{!v.placeholderText}" useIcons="false" class="noMargins heightXL searchInpFastlane3" labelClass="hidden"/>
      </div>
    </div>
    <div class="slds-col slds-size--1-of-1 slds-small-size--1-of-4 slds-medium-size--1-of-3 searchBtnPad">
      <div class="buttonWrapper searchBtn">
        <c:button buttonLabel="Search" onclick="{!c.searchButtonClicked}" buttonClass="valmetPrimaryButton" showImage="false"/>
      </div> 
    </div>
</div>

我的控制器看起来像这样:

    enterClicked : function(component, event, helper)
{
       console.log("1");
    if(event.keyCode && event.keyCode === 13)
    {
           console.log("2");
        try
        {
            console.log("3");
            console.log(component.get("v.searchInput"));
            helper.search(component, helper);
        }
        catch(e)
        {
            console.log("4");
            Console.log(e);
        }
    }
},

searchButtonClicked : function(component, event, helper)
{
    try
        {
            console.log(component.get("v.searchInput"));
            helper.search(component, helper);
        }
        catch(e)
        {
            Console.log(e);
        }
}

我只是不知道为什么console.log(component.get("v.searchInput"));似乎没有显示任何内容,而是在单击输入时显示未定义。

它在通过单击按钮调用 searchButtonClicked 时起作用

4

1 回答 1

0

设法通过在 try 语句 `document.getElementById('searchKeyword').blur() 中添加这行代码来解决它;,基本上光环属性似乎没有更新,除非你从输入中失去焦点,否则绑定,所以我在做什么我正在以编程方式从输入中失去焦点,这只是工作!

我的代码变成了这样:

enterClicked : function(component, event, helper)
{
    if(event.keyCode && event.keyCode === 13)
    {
        try
        {
             var ua = window.navigator.userAgent;
             var msie = ua.indexOf("MSIE ");

            if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))  // If Internet Explorer, return version number
            {
                document.getElementById('searchKeyword').blur();
                helper.search(component, helper);
            }
            else  // If another browser, return 0
            {
                helper.search(component, helper);
            }
        }
        catch(e)
        {
            Console.log(e);
        }
    }
},
于 2018-01-09T21:38:39.060 回答