我试图让jQuery根据订单表单上的输入字段更新字段。我使用jQuery的val()来设置值,但是当我尝试使用Laravel 4的Validator ::验证订单表单时:该字段为空。当我检查该字段时,我发现尽管在输入字段中输入了正确的数字,但实际上没有任何值分配给该字段。如何使用jQuery的val()设置一个值,Laravel 4的Validator ::将能够看到并识别为合法输入?如果有人能解释我哪里出了问题或向我展示如何正确执行此操作,将不胜感激!非常感谢!
当页面加载num = 1时,这是相关的jQ片段,因为总会有至少1个页面:
var num = 1;
$('#number_of_pages').val(num);
如果用户单击“添加页面”按钮,则这是更新页面数的最后一部分:
/*Update number of pages*/
var updated_number_of_pages = $('.inputPage').length;
$('#number_of_pages').val(updated_number_of_pages);
当他们单击DeletePage按钮时:
/*Updated Number of pages*/
var updated_number = $('.inputPage').length;
$('#number_of_pages').val(updated_pages);
这是视图:
{{ Form::text('number_of_pages', null, array('id' => 'number_of_pages')) }}
@if($errors->has('number_of_pages'))
{{ $errors->first('number_of_pages') }}
@endif
以及控制器的相关部分:
$validator = Validator::make(Input::all(),
array(
'order_name' => 'required',
'phone' => 'required|min:10|numeric',
'email' => 'required',
'st_address' => 'required',
'post_date' => 'required',
'number_of_pages' => 'required',
)
);
最佳答案
尽管我对此问题有些困惑,但是您可以使用attr
在源代码中设置属性:
$('#number_of_pages').attr('value', updated_number_of_pages);
因此,您可以看到源中的更改,
val()
在内存中设置属性。更新:
还要确保使用
Form::open()
打开表单,并且text
字段在表单内部,如下所示:{{ Form::open(...) }}
{{ Form::input('number_of_pages') }}
{{-- Rest of the code --}}
{{ Form::close() }}