选择单选时仅需要文本字段。 ZF2
Only require textfield when radio is selected. ZF2
在 ZF2 中,是否可以仅在选择单选按钮时才需要文本字段?像这样..
不,在 ZF2 中没有办法,您可以使用 javascript 的 jQuery 添加验证:
像这样:
$('radio').click(function(){
if($(this).val() == 'other') {
$('textfield').prop('required',true);
}
});
Onclick
任何单选按钮上的客户端事件和 zf2 在服务器端运行。因此,在将数据提交到服务器之前,您不能执行此操作。
您可以使用 JavaScript 库 jQuery 来执行此操作。
$(document).ready(function() {
$("#Radiobuttons").click(function() {
if($(this).attr('id') == "Other") {
//IF THE ID IS "OTHER"
$("#foo").show();
} else {
//IF THE ID IS NOT "OTHER"
$("#foo").hide();
}
});
});
因为只有这样,用户可以提交文本框为空的表单,并勾选复选框,您可以使用这个脚本。
//CHECK IF THE FORM IS SUBMITTED
if ( $("#foo").css('display') != 'none' ){
//The text box is visible. Now check if it's empty, with
//jQuery, PHP, or any other thing you use.
}
我知道这个问题很老了,但也许有人会利用它。
是一种方法。
在表单 class 中从 __construct 中删除 inputFilter 方法。然后在你的 inputFilter 方法中(让它命名为 addInputFilter)添加这样的参数:
public function addInputFilter(array $data) {
$inputFilter = new InputFilter();
$this->setInputFilter($inputFilter)
//your inputfilters
if ($data['radiofield'] === 'something') {
//add next inputfilters
}
//your inputfilters
}
接下来,转到调用表单的地方(可能是控制器?):
$data = $this->request->getPost();
$form->setInputFilter($form->addInputFilter($data->toArray()));
$form->setData($data);
// next check if form is valid etc.
就是这样。
在 ZF2 中,是否可以仅在选择单选按钮时才需要文本字段?像这样..
不,在 ZF2 中没有办法,您可以使用 javascript 的 jQuery 添加验证:
像这样:
$('radio').click(function(){
if($(this).val() == 'other') {
$('textfield').prop('required',true);
}
});
Onclick
任何单选按钮上的客户端事件和 zf2 在服务器端运行。因此,在将数据提交到服务器之前,您不能执行此操作。
您可以使用 JavaScript 库 jQuery 来执行此操作。
$(document).ready(function() {
$("#Radiobuttons").click(function() {
if($(this).attr('id') == "Other") {
//IF THE ID IS "OTHER"
$("#foo").show();
} else {
//IF THE ID IS NOT "OTHER"
$("#foo").hide();
}
});
});
因为只有这样,用户可以提交文本框为空的表单,并勾选复选框,您可以使用这个脚本。
//CHECK IF THE FORM IS SUBMITTED
if ( $("#foo").css('display') != 'none' ){
//The text box is visible. Now check if it's empty, with
//jQuery, PHP, or any other thing you use.
}
我知道这个问题很老了,但也许有人会利用它。 是一种方法。
在表单 class 中从 __construct 中删除 inputFilter 方法。然后在你的 inputFilter 方法中(让它命名为 addInputFilter)添加这样的参数:
public function addInputFilter(array $data) {
$inputFilter = new InputFilter();
$this->setInputFilter($inputFilter)
//your inputfilters
if ($data['radiofield'] === 'something') {
//add next inputfilters
}
//your inputfilters
}
接下来,转到调用表单的地方(可能是控制器?):
$data = $this->request->getPost();
$form->setInputFilter($form->addInputFilter($data->toArray()));
$form->setData($data);
// next check if form is valid etc.
就是这样。