2011-12-13 9 views
0

jQuery Mobileを使用してASP.NETウェブフォームウェブサイトをほぼ完成させました。私は1つの特定のユースケースで立ち往生しています。Androidで 'go'ボタンフォームの送信を無効にする

サイトは、Android、iPhone、BlackBerry、Windows Mobileをサポートするために有効です。特定のユースケースを除いて、すべての機能が有効です。

ユーザが入力ボックスの1つに値を入力してから、ネイティブのGo/Enterキーを押した場合です。私はこれをキャプチャしてjqueryで適切なイベント送信ボタンをクリック/タップします。

これは、Android以外のすべてのデバイスでうまく機能します。電話は、ユースケースに従うのではなく、フォーム全体を提出することになります。 onsubmitイベントを取得してfalseを返すことはどちらも機能しません。いくつかの掘削の後、私はこれを見つけたDisabling 'go' button form submission in Android when using webview

標準的なウェブフォームのための解決策を望んでいます。ありがとう。

+0

'タップ'の代わりに '$(button).trigger( 'click')'を起動しようとしましたか?テストするAndroid搭載端末はありますか?あなたのコードは実行されていますか? –

答えて

1

ありがとうございました。これを解決する方法は、form.submitイベントにバインドしてmobile.changePage()を呼び出すことです。その後、changePage()の後にfalseを返します。これにより、完全なフォーム提出が妨げられ、jqueryモバイルがそのアクションを完了できるようになりました。

+0

コードを共有できますか? – Pitto

+0

キーボードを閉じることができますか? – owencm

+0

申し訳ありません、私はもうコードを持っていません。解雇されたキーボードに関しては、入力にフォーカスを戻さない限り、「実行」ボタンをタップしなくて済むと思います。 –

0

$(button).trigger('click')を試してみてください。これは、より良い、より多くのクロスプラットフォームのイベントを送信する方法かもしれません。

あなたは間違いなくAndroid携帯電話上でこのようにそれをテストし、いつ、どこで実行が失敗した見つけることを試みる必要があります:あなたはそれへのリンクを持っている場合、私はそれをテストさせていただき

function BindSubmit(textbox, button) { 
    console.log("BindSubmit()"); 
    $(textbox).unbind().keypress(function(event) { 
     var keyCode = ...; 
     console.log("Key pressed: " + keyCode + ", isEnter: " + keyCode == 13); 
     if (keyCode == 13) { 
      console.log("Enter key hit, triggering event."); 
      ...; 
     } 
    }); 
} 

をあなたのための私のネクサスワン:)

+0

イベントのキャプチャは実際問題ではありません。アクションを完了し、フォームを送信せずにhrefをロードするのはjquery mobileです。フォームはDefault.aspxに戻ります。私はテストするためにjsfiddleを設定することができるかどうかを調べるつもりです –

+0

優れています、ええ、私は喜んで助けてくれるでしょう。 –

関連する問題