2016-07-03 4 views
0

classRuleを追加するときにjquery.validate()によって送信されるデータを再構成しようとしています。jquery.validate()のリモートクラスルールで現在のフィールド名を取得する方法

jQuery.validator.addClassRules("remote-validation", { 
    required: true, 
    remote: { 
      url : '/!/check/?ajax=true', 
      type:'post', 
      data: { table : $('body').attr('data-app'), id: $('input[name=id]').val(), field: $(this).val() }    
      } 
}); 

ちょうどそれが簡単にサーバー側の処理に作るために使用されているフィールド名を抽出しようとしているが、検証されている現在のフィールドを抽出する方法を見つけるように見える傾けます。

私の目標は

{ table : 'companies', id: '123', field: 'companyName } 

任意の提案を大幅に私はそれがどこにも文書を見つけることができません

答えて

2

を高く評価し、私はあなたがのためのパラメータ値のための関数を指定することができると思うし、生成以下のことですルールを実行し、そうした場合、その関数が呼び出されると、要素は最初の(そして唯一のパラメータとして)渡されます。

これが本当であるならば、あなたは次のことを試みることができる:

jQuery.validator.addClassRules("remote-validation", { 
    required: true, 
    remote: function(element) { 
     return { 
      url : '/!/check/?ajax=true', 
      type:'post', 
      data: { 
       table: $('body').attr('data-app'), 
       id: $('input[name=id]').val(), 
       field: $(element).val() 
      }    
     } 
    } 
}); 

これjsfiddleは、それが働いて示しています。フィドルでは、 "送信"ボタンをクリックし、最初の入力を開始します。各キーストロークに対してajax呼び出しが行われます。

関連する問題