2011-06-23 5 views
1

ほとんどの入力フィールドは、画面にhtmlを出力しています。私は、マークアップ内の入力の位置を難読化し、ページが読み込まれたときにそれらの位置を変えたいと考えています。私はスクリーン上の値を入力するスパムボットを防ぐためにこれをやっています。ランダムに出力された場合、これを防ぐのに役立ちます!入力フィールドの位置がわかりにくい

私はC#Webアプリケーションでjqueryを使用しています。

どのように私が上記を達成するかもしれないかに関する情報のヒント?

+0

スクリーンリーダーを使用してサイトにアクセスしたり、Tabキーを使用してフィールド間を移動したりしたくない場合... – RichieHindle

+3

[CAPTCHA](http://en.wikipedia.org/)と考えましたか? wiki/CAPTCHA)? – MikeM

+1

スパムボット防止のためのCAPTCHAの使用はどうですか? –

答えて

2

コメントに記載された理由のために、あなたの推論があなたのケースでこれを行うことを正当化するとは思わない。しかし、あなたがこれを行う良い理由があると仮定すると(ある例は、オンラインテストで不正行為をするのを難しくするためにクイズの質問の順序を混ぜるかもしれない)、それはまだ興味深い問題です。

class = "reorderable"で並べ替えることができるすべての要素を子として持つid = "container"のコンテナがあるとします。この例は以下のようになります:

<div id="container"> 
    <div class="reorderable">1</div> 
    <div class="reorderable">2</div> 
    <div class="reorderable">3</div> 
    <div class="reorderable">4</div> 
</div> 
その後、次のjQueryコードでコンテナ要素にランダムな順序でこれらの要素を再度追加することができ

var reorderables = $('#container .reorderable'); 
var reorderablesLength = reorderables.size(); 

while(reorderables.size() > 0){ 
    var rand = Math.floor(Math.random()*reorderables.size()) 
    $('#container').append(reorderables.splice(rand, 1)); 
} 

Hereはこれをテストするにはフィドルです。

+0

+1です。 – Yardboy

関連する問題