您好我想将一个form_radio()设置为codeigniter中的必填字段,我该怎么做?
这是我的表格:
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 :(得分: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>
答案 1 :(得分:0)
避免需要验证单选按钮的一种方法是默认选中一个。这样你甚至不必担心用户是否没有选择单选按钮,因为一旦选中了一个单选按钮,将始终检查一个。
这不能回答有关如何在CodeIgnitor中验证表单的具体问题(遗憾的是我不知道答案),但它可能对您实现总体目标有用。
答案 2 :(得分: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。生成单选按钮时,选择一个单选按钮,它将始终具有值。
尝试这样,这应该更好。如果未设置无线电的值,它将生成默认选中的第一个无线电盒:
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();
答案 3 :(得分:0)
到目前为止我解决它的方式(对我来说似乎没问题)......是通过我的控制器中的一个简单的if语句:
if($this->input->post('upload') && $this->input->post('radio')){
$this->Gallery_model->do_upload();
}
但是我想知道使用表单验证类是否有更合适的方法,所以我不会将其标记为答案......