0

次のスクリプトを使用して、テキスト ボックスを検証して数字と (.) のみを入力します。これは、10 進数のテキスト ボックス検証であることを意味します。Internet Explorer と Google Chrome では問題なく動作しました。FireFox で関数を実行すると、次のエラーが発生します。

イベントが定義されていません

これを解決する方法は?

function abc(event) {

        if (event.keyCode > 47 && event.keyCode < 58) {
            return true;
        }
        if (event.keyCode == 8 || event.keyCode == 46)
        {
            return true;
        }
        return false;
    }

この関数を次のように呼び出します。

$('.decimalValidate').live('keypress',function(){
          var decimalid=$(this).attr("id");
          var decimalval=$('#'+decimalid).val();
          var decimalvalidate=abc(decimalval);
          if(decimalvalidate == false)
          return false;
     });

この検証をテキスト ボックスに次のように割り当てます。

input type="text" id="Total" class="abc"
4

4 に答える 4

0

これを試して

function abc(event) {
        if(!event)
           event= window.event;

        if (event.keyCode > 47 && event.keyCode < 58) {
            return true;
        }
        if (event.keyCode == 8 || event.keyCode == 46)
        {
            return true;
        }
        return false;
    }

$('.decimalValidate').live('keypress',function(e){
                              var decimalid=$(this).attr("id");
                              var decimalval=$('#'+decimalid).val();
                              var decimalvalidate=abc(evt); //keypress event
                              if(decimalvalidate == false)
                              return false;
                         });
于 2012-06-28T08:42:16.663 に答える
0
   $('.decimalValidate').live('keypress',function(e){
                              var decimalvalidate=abc(e); //this will point to the event of the keypress.
                              if(decimalvalidate == false)
                              return false;
                         });

なぜあなたがすべての decimalid および decimalval 操作を行ったのかはわかりませんが、イベントが必要な場合は、上記の編集済みコードに書いたようにしてください。

幸運を。

于 2012-06-28T08:40:05.930 に答える
0

decimalval は Event オブジェクトではなく、押したキーを見つけるために abc 関数に渡す必要があります。

$('.decimalValidate').live('keypress',function(ev){
                          var decimalid=$(this).attr("id");
                          var decimalval=$('#'+decimalid).val();
                          var decimalvalidate=abc(ev);
                          if(decimalvalidate == false)
                          return false;
                     });
于 2012-06-28T08:40:39.727 に答える