2015-10-06 18 views
26

テキスト入力フィールドを持つHTMLフォームがあります。ユーザーが入力すると、データベースの値のリストに基づいて、予測的なテキスト候補を取得するAJAXリクエストを行います。サムスンの予測テキストをHTML形式で禁止する

このリストを表示すると、ユーザーはその中から1つを選択できます。私たちはそれらのフォームの残りの部分を表示します。

Samsung Galaxy S4、内蔵ブラウザ、Chrome、またはFirefoxで当社のWebページを表示している場合は、デバイスの予測入力候補もユーザータイプとして表示されます。例えばスクリーンショットを参照してください。

enter image description here

それは、自分の携帯電話の設定でこれを無効にするには、個々のユーザーのために十分に簡単です。しかし、すべてのユーザーにとってこのフィールドでは常に無効になっています。

<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"> 

You can also see this here:我々はすでにそれが現れ防ぐためにいないよう、次のすべてのを、やっています。

提案がありますか?

+1

パスワードフィールドでのみ可能だと思います。 –

+0

私はそれが 'autocomplete =" false "' not 'offだと思いますか? –

+0

これらは同義ですが、[ドキュメント](http://www.w3.org/TR/2011/WD-html5-20110525/common-input-element-attributes.html#the-autocomplete-attribute)には'off' – duncan

答えて

8

私はさまざまなことを試しましたが、モバイルでは現在、これを適切な方法で行う機会がないようです。

Safari Developer Docsによれば、https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.htmlというサポートがありますが、これはiOSよりデスクトップSafariに関連しているようです。

また、スペルチェックがhttp://caniuse.com/#feat=spellcheck-attributeによると、現在、それを行うが、可能性:

一般 が内蔵されたスペルチェックの代わりに波線を使用してOSからモバイルブラウザ結果の部分的なサポートを に指示スペルミスの単語。 spellcheck = "false"はこれらのブラウザでは の効果がないようです。

+0

私は答えとして "それはできない"と受け入れなければならないと思うよ、ありがとう! – duncan

+1

@duncan私はそれが満足ではないことを知っていますが、時には "本当の"トリックはありません。私は、ネイティブAppの場合、これは "可能"である可能性があると思います。 Androidの場合、独自の関数、WebViewのリスナーを作成できますが、これは明らかに「簡単な」HTMLタグではありません –

4

入力タイプをパスワードに設定すると、必要な動作が得られますが、テキストを復元して表示する必要があります。次のテストページは近づいていますが、依然として愛が必要です。点を非表示にするとカーソルが消えます。がんばろう。問題は明らかにサムスンが属性を実装するのを怠っているので、あなたはこの属性を無視して許されることがあります。

<!DOCTYPE html> 

    <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
     <style> 
      input[type="password"] { 
       cursor : url(cursor.png),auto; 
       color : rgba(0,0,0,0); 
      } 
     </style> 

    </head> 
    <body> 
     <form> 
      <input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" id="under" /><br /> 
      <div id="over" style="position:absolute; left:10px; top:10px"></div> 
     </form> 
     <script> 
      function textChanged(event) { 
       document.getElementById('over').innerHTML = document.getElementById('under').value; 
      }  
      document.getElementById('under').addEventListener('keyup', textChanged); 
     </script> 
    </body> 
    </html> 
+1

私はこれがモバイルOSプロバイダ(Apple、Google)の関心事ではないと思います。さらに、私はあなたのコードをテストして、iOS9 Safari上で動作していないので、... –

2

私はsamsungの携帯電話を持っていないので、これはテストできませんが、名前= "パスワード"のトリックを試しましたか?パスワードは、オートコンプリート、自動修正...と、上記の全ての動作を無効にすると、フィールドの設定

Turning off auto-complete for textarea and inputfields in Android Cordova-app

+0

素敵なアイデア!私はサムスンで試してみました(今回はS6ですが、S4とS5で同じになると思いますが)残念ながらそれはうまくいきませんでした。 – duncan

5

。入力を入力した後、それをテキストに戻します。 oninputイベントは私にとって非常に重要でした。

<input id="myinput" oninput="changeInputType(this)" type="password"/> 
<script> 
    function changeInputType(input) { 
     input.type = 'text'; 
    } 
</script> 
+0

これは私のために働いた。私は 'oninput'イベントの代わりに' onfocus'イベントを使用しました。 –

+0

contenteditable divに似た方法があると思いますか? – Jun

+0

これは動作していませんサムスン銀河のタブアンドロイド6.0バージョンのデバイス。 – AndroidGeeks

1

は私が許可されていないinput[type="password"]フィールド上-webkit-text-securityプロパティを再定義し、いくつかの研究と現在のWebKitのブラウザでやりました。

したがって、user1585345の回答に基づいて、私は改善されたアプローチを行っています。非常にハッキーですが、場合によってはそれで十分でしょう。

これは入力パスワードの作成と、入力する場所と、最初の入力が変更されたときに変更される入力テキストです。また、スタイルのためにカーソルが表示されていることがわかります。

var textInput = document.querySelector('.unpredictable-input input[type="text"]'); 
 
var passwordInput = document.querySelector('.unpredictable-input input[type="password"]'); 
 

 
passwordInput.addEventListener('input', function() { 
 

 
    textInput.value = passwordInput.value; 
 

 
    if(navigator.userAgent.match(/Android/)) { 
 
     passwordInput.style.letterSpacing = 
 
     (2.6 + passwordInput.value.length * 0.05) + 'px'; 
 
    } 
 

 
}, false);
.unpredictable-input { 
 
    position: relative; 
 
    width: 150px; 
 
} 
 

 
.unpredictable-input input { 
 
    position: absolute; 
 
    width: 100%; 
 
} 
 

 
.unpredictable-input input[type="text"] { 
 
    font-family: monospace; 
 
} 
 

 
.unpredictable-input input[type="password"] { 
 
    color: black; 
 
    user-select: none; 
 
    -webkit-text-fill-color: transparent; 
 
    background: transparent; 
 
    letter-spacing: 2.5px; 
 
    padding: 3px; 
 
    border: 0; 
 
}
<div class="unpredictable-input"> 
 
    <input type="text" /> 
 
    <input type="password" /> 
 
</div>

0

HTML5属性はサムスン予測テキストサービスから尊敬されることはありません。

私はサムスンの開発者フォーラムに報告し、正式な修正を要求してきた:http://developer.samsung.com/forum/thread/predictive-text-service-not-honoring-auto-correct-attribute/201/315078?boardName=SDK&startId=zzzzz~

、この問題があなたに起こっている場合は、正式な修正を推進するための努力に参加してください。