CINXE.COM
<link href="//g.alicdn.com/sd/ncpc/nc.css?t=1520579483" rel="stylesheet"><div id="appFeedback"> <div class="text-center mb-4"> <h1 class="h3">意见反馈</h1> </div> <form id="feedbackform" action="/feedback" method="post"> <input type="hidden" name="_csrf-token" value="6frg-yGjTMKN2v66TJGahT6S7l54-spjwLA2l_bORfDYj46wEOQfg7qFnesA2t3IUceMOR2tuVD21HnAxL4Xxg=="> <div class="mb-3"> <textarea class="form-control" v-model.trim="formData.content" placeholder="*请写下您的意见或遇到的问题" @keyup="getInputValue" rows="3"></textarea> </div> <div class="mb-3"> <input type="text" class="form-control form-control-lg" v-model.trim="formData.phone" placeholder="*请填写您的手机或邮箱" @keyup="getInputValue" required> </div> <div class="mb-3"> <div id="verifyId"></div> </div> <div class="mb-3"> <button type="button" class="btn btn-block btn-lg" :class="[submitDisabled?'btn-secondary':'btn-primary']" :disabled="submitDisabled" @click="onSubmitClick">提交</button> </div> </form> </div> <script src="//g.alicdn.com/sd/ncpc/nc.js"></script> <script> var vmFeedback = new Vue({ el: '#appFeedback', data: { formData:{ content:'', phone: '', verifyCode:'', }, scene:null, verifyCode:'83lHtGIN3PcFDcDJ', submitDisabled:true, }, created: function () { }, methods:{ getInputValue(){ if(this.formData.phone.length < 2 || this.formData.content.length < 6 ){ this.submitDisabled = true; }else{ this.submitDisabled = false; } }, postData(){ this.submitSignupText = '提交...'; this.submitDisabled = true; App.ajax({ url: '/feedback', type: 'post', data: this.formData, success: (res) => { this.submitSignupText = '提交'; this.submitDisabled = false; if(res.code == 200){ swal({title:res.message,type:'success',timer: 2000,}).then((value) => { location.reload(); }); }else{ //错误提示 swal({title:res.message,type:'error',buttons: false,timer: 2000,}); } } }); }, getCaptcha(){ var nc = new noCaptcha(); var nc_appkey = 'QNYX'; // 应用标识,不可更改 var nc_scene = this.scene; //场景,不可更改 var nc_token = [nc_appkey, (new Date()).getTime(), Math.random()].join(':'); var nc_option = { renderTo: '#verifyId', appkey: nc_appkey, scene: nc_scene, token: nc_token, callback: (data) => { this.formData.verifyCode = this.verifyCode; this.postData(); } }; nc.init(nc_option); }, onSubmitClick(){ this.getCaptcha(); }, }, }); </script>