【发布时间】:2018-10-02 21:18:54
【问题描述】:
我正在尝试使用 IN 验证规则来验证多选表单的值。尽管与列表中的选项之一相同,但我仍然收到我的值不正确的错误。我认为这必须是我在验证器中识别名称的方式(“step1”)。但是,我也使用了 step1.、step1.0.、step1*。它将继续给出对应于 IN 错误的“无效响应”响应。
控制器
public function postQuestionDetailsStep1(Request $request)
{
if ($request->ajax())
{
$step1 = $request->input('step1');
$this->validate($request, [
'step1' => 'required',
'step1.0' => 'in:Less than $50,000,$50,000-$100,000,More than $100,000',
], [
'step1.required' => 'You must choose one.',
'step1.in' => 'Invalid response.',
]);
}
}
查看
<input type="checkbox" class="custom-control-input" id="step1-option1" name="step1[]" value="Less than $50,000">
<input type="checkbox" class="custom-control-input" id="step1-option2" name="step1[]" value="$50,000-$100,000">
<input type="checkbox" class="custom-control-input" id="step1-option3" name="step1[]" value="More than $100,000">
Javascript
$('#step-1').submit(function(e) {
e.preventDefault();
var step1 = [];
$("input[name='step1[]']:checked").each(function() {
step1.push($(this).val());
});
$.ajax({
type: "POST",
url: "/question/details/1",
data: {step1:step1},
error: function(data){
},
success: function(data) {
console.log(data);
}
});
});
【问题讨论】:
-
你使用的是什么版本的 Laravel?
-
5.6,我相信......
-
由于您的规则选项也有逗号,您是否尝试使用双引号:
in:"Less than $50,000","$50,000-$100,000","More than $100,000"?参考:stackoverflow.com/questions/19575860/…
标签: laravel