2009-08-04 15 views
1

私は本日、テキストボックス検証に関する情報を求めていましたが、Dojo-Homepageでも有用な情報が得られませんでした。dijitテキストボックスのカスタム検証

私の問題:私はNumberSpinnerを取得しています。そこでは、10のステップの数字(10,20,30、...)のみを許可する必要があります。しかし、私はどのようにこれのバリデータを設定するか分かりません。 「制約」文では、これを行う可能性はないようです。そして、私はvalidator-functionの使い方を知らないので、間違って入力するとすぐに警告サインが表示されます。

もう1つの質問は、フォームの一部が送信前に有効でないかどうかを確認する方法です。すべての入力/選択ボックスに '有効な'のような属性があるので、それらを一度にチェックすることはできますか?

ああ、私はすべてのウィジェットをプログラムで作成します。

願わくば誰も私を助けることができます!

敬具、 ロビン

答えて

3

あなたはNumberSpinnerのはisValid()メソッドをオーバーライドすることができます。例えば:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 
\t "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html> 
 

 
<head> 
 
    <title>class</title> 
 
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dijit/themes/soria/soria.css" /> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js"></script> 
 
    <script type="text/javascript"> 
 
    dojo.config.parseOnLoad = true; 
 
    dojo.addOnLoad(function() { 
 
     dojo.require('dijit.form.NumberSpinner'); 
 
     dojo.require('dojo.parser'); 
 
     dojo.addOnLoad(function() { 
 
     new dijit.form.NumberSpinner({ 
 
      isValid: function(isFocused) { 
 
      var value = parseFloat(this.attr('value')); 
 
      if (isNaN(value) || (value % 10 != 0)) { 
 
       return false; 
 
      } else { 
 
       return true; 
 
      } 
 
      } 
 
     }, 'here'); 
 

 
     }); 
 

 
    }); 
 
    </script> 
 
</head> 
 

 
<body class="soria"> 
 
    <div id="here"></div> 
 
</body> 
 

 
</html>

0

dijit.form.NumberSpinnerdijit.form.ValidationTextBoxから誘導され、そのようなものとして、それは同じ引数(dijit.form.ValidationTextBox docsinline docs in its source codeを参照)を受け入れます。あなたの入力を検証できる正規表現(文字列として)を書くだけです。そのような何かがトリックを行う必要があります:

var box = new dijit.form.NumberSpinner({ 
    regExpGen: function(){ return "\\d+0"; } 
}, "my_node");