问题描述
|
我的复选框如下所示
<div>
<input type=\"checkBox\" name=\"fruits[]\" value=\"apple\" <?PHP echo set_checkBox(\'fruits[]\',\'apple\'); ?> />
<input type=\"checkBox\" name=\"fruits[]\" value=\"banana\" <?PHP echo set_checkBox(\'fruits[]\',\'banana\'); ?> />
<input type=\"checkBox\" name=\"fruits[]\" value=\"peach\" <?PHP echo set_checkBox(\'fruits[]\',\'peach\'); ?> />
</div>
我在名称中使用数组,以便可以使用所选复选框的值填充文本字段(通过jquery)。我正在使用在stackoverflow上找到的脚本。
function calculate() {
var fruit = $.map($(\'input:checkBox:checked\'),function(e,i) {
return e.value;
});
$(\'#fruits\').val(fruit.join(\',\')); //adds values separated by comma to #fruits input
}
calculate();
$(\'div\').delegate(\'input:checkBox\',\'click\',calculate);
到目前为止,它仍然有效,但是我无法为复选框设置验证规则,因为它们都具有相同的名称。我试过了..
$this->form_validation->set_rules(\'fruits[]\',\'Apple\',\'required|xss_clean\');
$this->form_validation->set_rules(\'fruits[]\',\'Banana\',\'Peach\',\'required|xss_clean\');
并使用ѭ3来显示验证错误,但没有任何反应。最终,如果表单中的另一个字段发生错误,我想以提交状态显示一个复选框。而是取消选中所有复选框。我不确定如何解决此问题。
开机自检
Array ( [FRUITS] => Array ( [0] => apple [1] => banana [2] => peach )
这是当他们检查
解决方法
尝试不使用方括号[],所以只使用\'fruits \'。
[]只是向浏览器说,“将这些值作为数组而不是单个值发布,因为它们是一个组”,但是在PHP中,您可以将其作为其他任何值来使用,即。 $ _POST [\'fruits \']。
希望能有所帮助,
祝一切顺利,
西北