1

そのため、jQueryスピナーを使用しており、jQuery検証プラグインで検証する必要があります。スピナーは「フォーム」の形式であり、コードは次のようになります。

jQuery("#mySpinner").spinner({
    min: 110,
    max: 350,
    step: 10,
    spin: function() {jQuery("form").valid();}
});

jQuery("form").validate({
  rules:{
    mySpinner: {required: true, min: 150, max: 350}
  }
});

スピナーがスピンすると検証が行われないため、スピン時にjQuery( "form")。valid()を呼び出しています。これで問題は終わりですが、残念ながら、スピナーで値が変更される前に検証が行われます。シナリオは次のとおりです。

ユーザーはスピナーに1111を入力します。検証は4日1に開始され(.validateの最大値が350に設定されているため)、入力が無効であることをユーザーに通知します。次に、ユーザーは下矢印をクリックします。まず、検証が実行され、値に無効のフラグが付けられます。次に、スピナー内の値が最大値(350、スピナーの「最大」値から)に変更されます。私に残されているのは、無効としてフラグが立てられた有効な値です。スピナーをもう一度クリックすると、新しい値で検証され、無効なフラグが消えます。

そのスピナーで値が変更されたに検証チェックを実行する方法を誰かに教えてもらえますか?さらに言えば、もっと明白で簡単な解決策があれば、それを声に出していただけませんか。

前もって感謝します!

4

3 に答える 3

0

スピナーで値が変更された、次のようにして検証をトリガーすることができました。

jQuery(".ui-spinner").mouseup(function() {jQuery("form").valid();});
于 2012-05-31T15:44:42.800 に答える
0

「spin」イベントの代わりに「change」イベントを使用すると、問題が解決すると思います。つまり、

jQuery("#mySpinner").spinner({
    min: 110,
    max: 350,
    step: 10,
    change: function() {jQuery("form").valid();}
});
于 2012-11-20T22:53:42.943 に答える
0

http://demos.radiantq.com/jQueryGanttDemo/demo.htmの TimeScaleStartAndEnd サンプルを見てください。HTMLコードを表示するためのコードタブがあります。サンプルがお役に立てば幸いです。

于 2012-05-31T08:18:33.930 に答える