10

ページへの入力にJeditable (CakePHP への投稿) を使用しています。ユーザーに Jeditable フィールドに数字のみを入力してもらいたいので、jQuery 検証プラグインを使用して、数字のみが使用されているかどうかを検証することも考えました。これは、サイトの他の部分で既に使用しています。

Jeditable は、div をクリックすると入力を含むフォームを動的に作成するため、Jquery 検証がバインドするものがないように見え、正常に動作しないようです。

Jeditableを介してフォームのクラス名を設定できます(クラス属性のみがあります)。作成された入力には、デフォルトで「名前」になる名前属性のみがあります。

私の質問:

  • これは数字のみを要求する良い方法ですか?
  • もしそうなら、Jquery validate で動作させる方法
  • そうでない場合、より良い解決策は何ですか?

事前に感謝します。私が得るかもしれない答えを楽しみにしています;)

4

6 に答える 6

13

jeditableでjQuery検証プラグインを直接使用して、フォームのフィールドを検証できます

$('.edit').editable(your_url, {
    onsubmit: function(settings, td) {
        var input = $(td).find('input');
        $(this).validate({
            rules: {
                'nameofinput': {
                    number: true
                }
            },
            messages: {
                'actionItemEntity.name': {
                    number: 'Only numbers are allowed'

                }

            }
        });

        return ($(this).valid());
    }
});
于 2011-12-14T08:17:20.720 に答える
10

このコードは私のために働いた

function isNumeric(value) {
  if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
  return true;
}

$('.edit').editable(your_url, {
    onsubmit: function(settings, td) {
      var input = $(td).find('input');
        var original = input.val();
        if (isNumeric(original)) {
            console.log("Validation correct");
            return true;
        } else {
            console.log("Validation failed. Ignoring");
            input.css('background-color','#c00').css('color','#fff');
            return false;
        }
    }
});
于 2010-04-20T06:33:23.703 に答える
3

Jeditable で onsubmit イベントを使用して、入力に数字のみが含まれているかどうかを確認できます。これは単なる例です。私は試していません。

function isNumeric(value) {
  if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
  return true;
}

$('.edit').editable(your_url, {
    onsubmit: function(settings, original) {
        if (isNumeric(original)) {
            return true;
        } else {
            //display your message
            return false;
        }
    }
});
于 2010-03-11T22:35:06.763 に答える
0

私のプロジェクトでは、関数名を isAcceptable に変更しました。これは、括弧、ダッシュ、ドットを電話番号の一部として使用できるようにするためです。

function isAcceptable(value) {
  if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false;
  return true;
}
于 2013-03-06T06:49:12.693 に答える
0

コードがあります。多分それはあなたを助けることができます:D
http://www.codeproject.com/Articles/50059/jQuery-Validate-and-Jeditable-Part-2/

于 2011-08-09T18:01:32.247 に答える