2012-01-31 6 views
0

jQueryの検証(bassitance)を使用して大きなフォームを検証しています。手のひらにテキストボックスがいっぱいあり、チェックボックスの数が増えています(最後のカウントで4600)。私はjQueryで検証する

を使用しています無視: '入力[タイプ= "チェックボックス"]'

方法が、それは十分ではありません。私はIE8以下を使用して提出するときに、まだ 'このスクリプトの実行を停止する'エラーが表示されます。 Firefox、Safari、Opera、IE9は正常です。

私には何かがありませんか、これを行うにはより良い方法がありますか?

+0

ignoreで検証を実行する前に、すべての要素を反復処理していないのですか? –

+0

私は、オンロードを介して選択されたボックスをカウントするスクリプトを持っています。それを削除しても、同じ結果が得られます。 – Eric

+0

Firebug JSプロファイラを使用して、何が遅くなるのかを見てください。 DOMが大きすぎる可能性があります。私は、AJAXを使って複数のページに分割することを提案する答えに同意します。 –

答えて

3

4600個のテキストボックスを持たないとよいでしょう。 本当にには1ページに多くのページが必要ですか?一度にDOMにロードされる量を減らすために、データをページングすることを検討できますか?

+0

残念ながら、クライアントは1ページに記載されているすべてのアイテムを必要としています。それらはアルファベット順のグループに分かれていますが、DOMの状況には役立ちません。 – Eric

+0

ああ、クライアント/上司は常にベスト(!)を知っています。元の投稿を更新して検証テストを追加できますか?単純なテスト(たとえば)を1回だけ取り除いて、使用しているルールが遅いかどうかを確認しましたか? – akiller

+0

必須フィールドは8つです。次に、チェックボックスの1つがクリックされると増分/減分されるフィールドでminを指定します。あまりにも多くのチェックボックスを除いてこのフォームにはそれほど多くはありません。 – Eric

1

私はakillerに同意します。これは1ページ分の要素が多すぎます。フォームの要素数を減らしてください。しかし、チェックする要素が膨大な場合は、このフォームを複数のWebページに分割する必要があります。ページをナビゲートするためにAjaxを使用する必要があります。代わりに、jQueryを使用しないでください。スクリプトをスピードアップする可能性があります。

+0

私はちょうどそれをやって、bassitanceを使用するのではなく、自分で検証を処理するのを見ています。しかし、私は誰かが魔法の弾丸を持っていたと思っていた。 – Eric