我有一个动态字段,我无法获得旧值,因为我使用jQuery添加了这个动态字段,但在验证后我没有字段。
我的jQuery代码:
var fielddd = 1;
$(document).on('click', '.btn.add-field', function() {
fielddd++;
$('#newfield').append('<textarea class="from-control" name="somename[]" id="field_' + field + '"></textarea>' + '<button class="btn add-field">add</button>' + '<textarea class="from-control" name="somename2[]" id="field_' + field + '"></textarea>');
});
HTML code:
<div class="row">
<div class="{{($errors->has('somename[]')}}"
<textarea class="from-control" name="somename[]" id="field">
</textarea>
{!! $errors->first('somename[]',:message) !!}
</div>
<button class="btn add-field">add</button>
<div class="{{($errors->has('name[]')}}"
<textarea class="from-control" name="name[]" id="field">
</textarea>
{!! $errors->first('somename[]',:message) !!}
</div>
</div>
<div class="row" id="newfield">
<!-- new textarea -->
</div>
验证后如何获得具有相同输入的相同字段? 我举个例如某个字段是空的。如果我按下添加字段,然后按下按钮提交laravel检查字段是否为空,如果是,则重定向到同一页面,并说在文本区域内放置一些值。
答案 0 :(得分:0)
您可以在表单中打印出旧的响应,然后您可以从中获取。如果您将old('somefield[]')
打印为JSON,则可以阅读每个值并使用textarea
s重新填充表单。
var oldValues = json_encode(old('somefield[]'))
然后你可以使用oldValues
oldValues.forEach(function(oldValue) {
// create new textarea using oldValue as value
})