2

ページ内のすべてのテキストボックスでオートコンプリートを削除する必要があるため、 < を指定しましたinput name="txt_username" id="txt_username" type="text" value="" autocomplete="off" /></dd></dl>

しかし、それは機能していません 誰かがこれを知っていますか?

4

4 に答える 4

10

オートコンプリートは、AJAX でクレイジーなことをしていない限り、クライアント側のものであり、常にそのように制御できるとは限りません。

オートコンプリートは、特定の入力テキスト名の以前のエントリをキャッシュすることで機能するため、多くの銀行は、フォーム ページの読み込みごとに入力テキスト名をランダムに生成しますが、非表示の入力要素のどこかまたはサーバー側で生成されたものを追跡します。

だから代わりに

<input name="txt_username" id="txt_username" type="text" value="" autocomplete="off" />

のようなものかもしれません

<input type="text" name="f6Lx571p" id="txt_username"/>
<input type="hidden" name="username_key" value="f6Lx571p" />

それに応じてサーバー側のコードが調整されました。たとえば、PHP コードは次のようになります。

<?php
$user = $_POST['txt_username'];
...

ただし、次のように変更する必要があります。

<?php
$user = $_POST[$_POST['username_key']];
...

少し面倒ですが、うまくいきます。

于 2012-05-02T09:41:57.130 に答える
3

オートコンプリートをオフにすることはできません。これはブラウザーからのものです。オートコンプリートをオフにしたい場合は、次のようにします。

フィールド名と乱数でセッションを開始します。

session_start();
$_SESSION['strUsername'] = "username_" . mt_rand(0, 1000000);

この変数をフィールドの名前として使用します。

name="' . $_SESSION['strUsername'] . '" id="txt_username" type="text" value="" autocomplete="off" /></dd></dl>

フィールドの値を確認するには、単に使用します

$username = $_POST[$_SESSION['strUsername']];

これで、名前は毎回ランダムになるため、ブラウザはフィールドを認識せず、オートコンプリートを提供しません。

于 2012-05-02T09:44:47.200 に答える
3

autocompleteその属性をフォーム要素に配置することもできます。

<form id="myForm" autocomplete="off">
  ...
</form>

これにより HTML が無効になる可能性があるため、この属性を JavaScript で動的に追加することを検討してください。

于 2012-05-02T09:43:45.943 に答える