键盘上的iPhone搜索按钮未重定向到正确的页面

时间:2017-07-12 16:10:11

标签: jquery ios iphone click iphone-softkeyboard

我在主页面上有一个搜索栏和搜索按钮。为了处理移动键盘的输入或搜索按钮,我有一个检查键码事件的功能。如果键码是搜索键,该功能将触发搜索按钮的点击事件。一切都适用于Android手机,但在iPhone中,当当前页面是主页时,它会重定向到搜索结果页面(这是正确的页面),但除此之外,它将始终转到主页。我已经尝试了几种解决方案,但我没有找到运气。我尝试的一些解决方案是更改window.location.href,window.location.replace,在搜索按钮上放置一个css游标:指针和onclick属性,但这些都不起作用。

我迷失在iPhone上搜索按钮的工作方式。

更新:我在btn.click()行后面发出警告,以在表单上显示action属性。令人惊讶的是,在警报上单击确定后,它将重定向到正确的页面,然后我删除了警报,并返回到相同的错误。我疯了。

HTML:

<asp:TextBox ID="searchboxMobile" runat="server" CssClass="m-index-tbx-
  search search-div-textbox" Text="Type Part Number Here"         
  onfocus="OnSearchBoxFocus('searchboxMobile');"         
  onblur="OnSearchBoxLostFocus('searchboxMobile');"         
  onkeypress="doClick('searchButtonMobile', event);" ></asp:TextBox>
<asp:Button ID="searchButtonMobile" runat="server"
    PostBackUrl="~/SearchResults.aspx"
    formnovalidate="formnovalidate" CssClass="search-button m-search-button" />

jQuery - 该函数似乎正在工作,因为它能够捕获搜索键或输入密钥但单击事件似乎无法正常工作。我用window.location.href =&#34;〜/ SearchResults.aspx&#34;替换了这段代码。和window.location.replace(&#34;〜/ SearchResults.aspx&#34;)使其重定向到正确的页面,但没有工作。

function doClick(buttonName, e) {
  //the purpose of this function is to allow the enter key to 
  //point to the correct button to click.
  var key;

  if (window.event) {
    key = window.event.keyCode;     //IE
  } else {
    key = e.which;                  //firefox
  }

  if (key == 13) {
    //Get the button the user wants to have clicked
    var btn = document.getElementById(buttonName);
    if (btn != null) { //If we find the button click it
       btn.click();
       event.keyCode = 0;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

最后我要让搜索按钮在iPhone上运行。似乎在执行btn.click()之后,它正在提交表单两次,从而将action属性更改为主页。通过在btn.click()事件之前放置e.preventDefault()使其正常工作。另外,我没有提到我有两个提交按钮,第一个提交按钮用于桌面版本,只有当用户在移动设备上时才会隐藏。我完全删除了提交按钮(桌面)的标记,而不是隐藏它。

希望这个答案可以帮助将来的某个人。