2016-06-21 2 views
0

jqueryの検証で問題を見つけるのを助けてください。私はjQuery Validation pluginを使用して自分のフォームを検証しています。私は画像のチェックディメンション(画像をアップロードしようとしている)のカスタムルールを追加しました。ここで私は、私は、コンソールにメッセージを見ることができるし、また大きさも正確に計算されたとして正しく呼ばれ jQuery Validationプラグインのカスタムメソッドは常に無効な戻り値

image: {required: true, accept: "image/*", checkDim: [1366,311]} 

以下の機能のようなルールを追加した

$.validator.addMethod('checkDim', function (value, element, param) {  
    var image = new Image(); 
    var file = element.files[0]; 
    var _URL = window.URL || window.webkitURL; 
    image.src = _URL.createObjectURL(file); 
    image.onload = function() { 
     console.log("The image width is " + this.width + " and image height is " + this.height); 
     if(this.width == param[0] && this.height == param[1]){ 
      return true; 
     } 
     else{    
      return false; 
     } 
    }; 

}, 'Image dimension must be as specified'); 

カスタムメソッドのコードがあるが、この機能は常にリターン無効。

私が間違っていることを理解するのを手伝ってください。

+0

無効はfalseを返すことを意味しますか? –

+0

エラー – Killan

+0

を提供してください。また、param [0]とparam [1]を記録して、何が入っているのか、なぜfalseを返すのかを確認してください。 –

答えて

0

あなたの要素のパラメータは、あなたの要素すなわちあなたのイメージに関連する属性を与えます。あなたはイメージングオブジェクトを作成するためにイベントを必要としません。

$.validator.addMethod('checkDim', function(value, element, param) { 
     var width = $(element).width(); 
     var height = $(element).height(); 
     console.log("The image width is " + width + " and image height is " + height); 
     if (width == param[0] && height == param[1]) { 
      return true; 
     } else { 
      return false; 
     } 
    }, 'Image dimension must be as specified'); 
+0

Riyajは動作していない、未定義の幅と高さを示している – Karan

+0

@Karanは最新のものをご確認ください。 –

+0

@RIYAZ KHANは私が正しく説明していないようです。私は画像をアップロードしようとしています。あなたのメソッドは、私が選択したイメージではなく、要素の高さと幅を返しています。 – Karan

関連する問題