Javascript 表单输入收音机不';不要转到请求对象Laravel

Javascript 表单输入收音机不';不要转到请求对象Laravel,javascript,php,html,laravel,eloquent,Javascript,Php,Html,Laravel,Eloquent,我有一个表单,它以单选按钮的形式包含性别输入,但是当我尝试使用空值提交时,单选按钮元素不会进入请求对象,在下面的示例中,输入名称是jenis_kelamin。但是如果jenis_kelamin有一个值,那么jenis_kelamin元素将被输入到请求对象中 我需要Request对象中的元素,因为如果radio元素为空,则输入消息required将出错。所以,我希望的是,当值为空时,无线电输入如何进入请求对象,以及为什么会发生这种情况 Routes Route::get('/mahasiswas

我有一个表单,它以单选按钮的形式包含性别输入,但是当我尝试使用空值提交时,单选按钮元素不会进入请求对象,在下面的示例中,输入名称是jenis_kelamin。但是如果jenis_kelamin有一个值,那么jenis_kelamin元素将被输入到请求对象中

我需要Request对象中的元素,因为如果radio元素为空,则输入消息required将出错。所以,我希望的是,当值为空时,无线电输入如何进入请求对象,以及为什么会发生这种情况

Routes

Route::get('/mahasiswas/create', 'MahasiswaController@create')->name('mahasiswas.create');
Route::post('/mahasiswas', 'MahasiswaController@store')->name('mahasiswas.store');

Controller

public function create(){
  return view('form-pendaftaran');
}
public function store(Request $request){
   dump($request);
}
看法


@csrf
杰尼斯·克拉明
拉基拉基
达夫塔
如果值为空,则为无线电输入

无线电输入,如果有值


注意:我使用的是Laravel 7

您可以通过在无线电输入之前放置一个同名的隐藏输入来解决此问题

<form action="{{route('mahasiswas.store')}}" method="post">
@csrf
<div class="form-group">
   <label>Jenis Kelamin</label>
   <input type="hidden" name="jenis_kelamin" value="" />
   <input type="radio" name="jenis_kelamin" id="laki-laki" value="L">
   <label for="laki-laki">Laki-laki</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Daftar</button>
</form>

@csrf
杰尼斯·克拉明
拉基拉基
达夫塔
如果用户检查无线电输入,则它将覆盖您设置的隐藏输入

PS:同样的修正也适用于复选框

PPS:可能注释中写的修复也能起作用,但是不管使用什么框架,这个都能起作用


PPP:如果按“名称”属性选择查询,则此修复可能会出现问题,但开发人员必须意识到这一点。

如果未选择单选选项,则不会向服务器发送任何内容。在拉威尔,这是可以的
required
validation将对缺少的字段起作用。不,当无线电输入为空时,将不需要错误消息,正如我前面提到的,当无线电输入不在请求对象中时,我如何访问@error('jenis_kelamin'),我已经尝试过了。是的,它会;验证中的规则
'jenis_kelamin'=>'required'
如果字段丢失,则会触发错误,然后
$errors->has('jenis_kelamin')
将为
,而
$errors->first('jenis_kelamin')
将为
'jenis kelamin字段为required'
。在问题中包括您正在使用的验证,以及您如何输出错误。@TimLewis是对的,如果您在
jenis_kelamin
字段上有“必需”规则,并且该字段id未发送,则验证将失败,错误将出现在响应HMM上,昨晚我尝试了我所提到的,但是没有明确的原因,结果仍然无法实现,但是现在显示了所需的消息。谢谢大家的帮助
<form action="{{route('mahasiswas.store')}}" method="post">
@csrf
<div class="form-group">
   <label>Jenis Kelamin</label>
   <input type="hidden" name="jenis_kelamin" value="" />
   <input type="radio" name="jenis_kelamin" id="laki-laki" value="L">
   <label for="laki-laki">Laki-laki</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Daftar</button>
</form>