2010-08-31 160 views
0

你好我想有一個form_radio()設置爲codeigniter中的必填字段關於如何做到這一點的任何想法?form_radio設置表單驗證規則()

這是我的表格:

  echo form_radio('radio','earing',FALSE)."earings"; 
      echo form_radio('radio','bag',FALSE)."bag"; 
      echo form_radio('radio','bracelet',FALSE)."bracelet"; 
      echo form_close(); 
當然只有唯一一個需要每次提交其中之一的

...

在此先感謝!

回答

0

您需要爲表單的提交事件添加驗證。 見下面例子:

<form action="page.php" method="post" onsubmit="return isValid(this);"> 
    <fieldset> 
     <legend>Radio Buttons</legend> 

     <input type="radio" value="1" name="myRadio" />Selection 1<br /> 
     <input type="radio" value="2" name="myRadio" />Selection 2<br /> 
     <input type="radio" value="3" name="myRadio" />Selection 3<br /> 
    </fieldset> 

    <input type="submit" name="submitit" value="Submit" /> 
    <input type="reset" name="reset" value="Clear" /> 
</form> 

<script type="text/javascript"> 

    function isValid(frm) { 
     // Initialize return value 
     var isChecked = false; 

     // Check if radio was selected 
     for (var i=frm.myRadio.length-1; i > -1; i--) { 
      if (frm.myRadio[i].checked) { 
       isChecked = true; 
       break; 
      } 
     } 

     if (isChecked == false) { 
      alert("You must select a radio button"); 
      // Data is invlaid, 
      return false; 
     } 

     // Everything is ok, continue with form submit 
     return true; 
    } 
</script> 
+0

使用javascript ?謝謝!我會檢查出來......雖然我真的希望有人能幫我解決它在codeigniter上,因爲它不能那麼困難我似乎卡住了!這裏是規則:http://codeigniter.com/user_guide/libraries/form_validation.html#validationrules – rabidmachine9 2010-08-31 15:44:17

0

的一種方法,以避免需要驗證單選按鈕是簡單地具有一個默認選中。這樣,如果用戶沒有選擇單選按鈕,您甚至不必擔心,因爲一旦選中了一個單選按鈕,總會有一個選中。

這並沒有回答關於如何驗證CodeIgnitor中的表單的具體問題(很遺憾,我不知道答案),但它可能對您實現您的總體目標很有幫助。

+0

謝謝,但我真的需要的形式來驗證... – rabidmachine9 2010-08-31 15:40:54

0

如果要使用驗證,則需要將代碼提供給控制器。

class Form extends Controller { 

    function index() 
    { 
     $this->load->helper(array('form', 'url')); 
     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('radio', 'Product', 'required'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('myform'); 
     } 
     else 
     { 
      $this->load->view('formsuccess'); 
     } 
    } 
} 

你真的不需要驗證RADIO。當您生成單選按鈕時,請選中一個並始終具有價值。

試試吧,這應該會更好。它會生成一個1默認選中的單選如果收音機值未設置:

echo form_radio('radio','earing', set_radio('radio', 'earing', TRUE))."earings"; 
echo form_radio('radio','bag', set_radio('radio', 'bag'))."bag"; 
echo form_radio('radio','bracelet', set_radio('radio', 'bracelet'))."bracelet"; 
echo form_close(); 
0

到目前爲止,我已經解決了它的方式(和它似乎確定我)......是一個簡單的如果在我的控制器這樣的語句:

if($this->input->post('upload') && $this->input->post('radio')){ 
      $this->Gallery_model->do_upload(); 
      } 

但我想知道是否有使用表單驗證類,所以我不會慶祝這個作爲一個答案更合適的方式...