2017-07-12 5 views
0

マスターページで検索バーと検索ボタンが表示されました。モバイルキーボードの入力または検索ボタンを処理するために、私はキーコードイベントをチェックする機能を持っています。キーコードが検索キーの場合、検索ボタンのクリックイベントが発生します。 Androidの携帯電話ではすべて動作しますが、現在のページがホームページである場合は、検索結果ページ(正しいページ)にリダイレクトされますが、代わりに常にホームページに移動します。私は見つけたいくつかの解決策を試しましたが、不運です。私が試した解決策のいくつかは、window.location.href、window.location.replaceを変更して、css cursor:pointerとonclick属性を検索ボタンに配置していましたが、これはうまくいきませんでした。キーボードのiPhone検索ボタンが正しいページにリダイレクトされない

私はiPhoneの検索ボタンがどのように機能するかについて迷っています。

更新:フォームにアクション属性を表示するために、btn.click()行の後に警告を表示しました。意外にも、アラートで[OK]をクリックすると、正しいページにリダイレクトされ、アラートが削除され、同じエラーに戻ります。私はおかしくなりそうだ。

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 = "〜/ SearchResults.aspx"とwindow.location.replace( "〜/ SearchResults.aspx")に置き換えて正しいページにリダイレクトさせたが動作しなかった。

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; 
    } 
    } 
} 

答えて

0

最後に、iPhoneで動作するように検索ボタンを作成する必要があります。 btn.click()を実行した後、フォームを2回送信しているため、アクション属性をホームページに変更しているようです。 btn.click()イベントの前にe.preventDefault()を配置すると、正しく動作するようになります。また、私は2つの提出ボタンを持っていることは言及していない、最初の提出ボタンは、ユーザーがモバイルデバイス上にあるときに隠されているデスクトップバージョンです。私は完全にそれを隠す代わりに送信ボタン(デスクトップ)のマークアップを削除しました。

この回答が今後誰かを助けてくれることを願っています。

関連する問題