很多時(shí)候,需要對(duì)Yii表單model中的對(duì)象設(shè)置的rules進(jìn)行判斷,但是有的時(shí)候可能需要在提交之前就在客戶端進(jìn)行驗(yàn)證,我這邊設(shè)置的方法是在提交按鈕上設(shè)置監(jiān)聽(tīng)器,如果部分內(nèi)容為空(比如多選按鈕沒(méi)有選擇),那么提示出錯(cuò)信息。主要目的是頁(yè)面不用提交后刷新,進(jìn)入controller的對(duì)應(yīng)函數(shù)之后再判斷出錯(cuò)。顯示rules()驗(yàn)證規(guī)則函數(shù)的錯(cuò)誤信息。
這里為了驗(yàn)證是否選擇某個(gè)單選按鈕,對(duì)提交的按鈕onclick設(shè)置監(jiān)聽(tīng),具體如下
<Button onclick = "return fun()"/>
自定義fun()函數(shù),需要有return true和false兩種情況
<script> function fun(){ var CheckBox = document.getElementsByName('checkBox[]');//獲取所有的checkBox var count=0; for(i=0;i < CheckBox.length;i++){ if(CheckBox[i].checked == true){ count++; } } if(count == 0 ){ var errorMeg = document.getElementById('HomeworkTrConfig_flag_em_'); errorMeg.style.display = ""; errorMeg.innerHTML="請(qǐng)至少選擇一項(xiàng)"; return false; }else{ return true; } }</script>補(bǔ)充:Yii表單驗(yàn)證中,提交前驗(yàn)證,不通過(guò)不提交
以前記得有這么一個(gè)寫(xiě)法,就是當(dāng)表單中的內(nèi)容不符合驗(yàn)證規(guī)則時(shí),會(huì)不允許提交,時(shí)間一長(zhǎng)忘了怎么寫(xiě)了,手冊(cè)里面也沒(méi)寫(xiě),查了一下資料,做一下筆記 :
$form = $this->beginWidget('CActiveForm',array( 'id' => 'add_host', 'enableAjaxValidation' => false, 'enableClientValidation' => true, 'clientOptions' => array( 'validateOnSubmit' => true //在這個(gè)位置做驗(yàn)證 ), 'focus' => array($model,'ip') ));?>以上所述是小編給大家介紹的yii form 表單提交之前JS在提交按鈕的驗(yàn)證方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注