2014-05-07 59 views
0

我正在使用ExtJS 4.2,並且我無法獲得註冊表單中的驗證碼字段。有人可以提出一個解決方案嗎? ?使用ExtJS需要註冊表格中的captcha字段

+0

ExtJS的有沒有驗證碼現場你從哪裏得到的呢? –

+0

我需要captcha在我的形式,有沒有什麼辦法可以將java captcha與ExtJs –

+1

集成,然後將有關此captcha框架的信息添加到您的問題中,併爲框架添加標籤(如果有的話)。所以具有正確知識的人可以找到你的問題 –

回答

0

我使用谷歌recpatcha。我將在下面粘貼我的客戶端代碼。你需要自己做服務器端。你需要包含google recaptcha庫,並在你的表單上有一個面板,如下面的內容。那麼,當你提交的時候,谷歌的價值就會上升並且需要被驗證。

ExtJS的:

  { 
       xtype: 'panel', 
       border: false, 
       height: 150, 
       html: '<div id="recaptcha">Captcha Control From Google. This should be replaced by image by google</div>', 
       itemId: 'reCaptcha', 
       margin: '0 0 0 105' 
      } 

的JavaScript提交Click事件

var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Creating New Account..."}); 
myMask.show(); 

localValues.recaptchaChallengeField = Recaptcha.get_challenge(); 
localValues.recaptchaResponseField =Recaptcha.get_response(); 

Ext.Ajax.on('requestexception', function (conn, response, options) { 
myMask.hide(); 
if (response.status != 200) { 
    var errorData = Ext.JSON.decode(response.responseText); 


    Ext.MessageBox.show({ 
     title: 'Error Message', 
     msg: errorData.message, 
     icon: Ext.MessageBox.ERROR, 
     buttons: Ext.Msg.OK 
    }); 
    Ext.Msg.alert('Creating User Failed',errorData.message); 
} 
}); 

Ext.Ajax.request({ 
url:'/rpc/Account/CreateUser', 
actionMethods:'POST', 
scope:this, 
params: localValues, 
success: function(r, o) { 
    myMask.hide(); 
    var retData = Ext.JSON.decode(r.responseText); 


    } else { 
     tabPanel.setActiveTab(tabPanel.getTabIdByName('AttendeeAfterLoginConf')); 
    } 

}, 
failure: function(r,o) { 
    myMask.hide(); 
    // handled in exception now 
    //debugger; 
    //Ext.Msg.alert('Creating User Failed',''); 
} 
});