我正在尝试创建一个动态输入字段,当值不再与存储在数据库中的值匹配时会发出警告。我想使用Laravel的本地化@lang('messages.error')
或{{ __('messages.error') }}
使此消息可用于我的应用的所选语言。
我的问题很简单,如何在jQuery中使用它?我发现,就目前的经验水平而言,答案很难,所以我想知道这里是否有人知道答案。
部分代码:
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<title></title>
<form action="" method="post">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h4>@lang('form.kvk')</h4>
</div>
<div class="ibox-content">
<div class="form-group{{ $errors->has('kvk') ? ' has-error' : '' }}">
<label for="kvk">@lang('form.kvk')<span class="redFont">*</span></label>
<input type="text" class="form-control" name="kvk" id="kvk" value="{{ ( $errors->has('kvk') ? old('kvk') : ( $debtor != NULL ? $debtor->kvk : old('kvk') ) ) }}">
</div>
</div>
{{-- Remains empty if no error --}}
<div id="noMatchKvk"></div>
</div>
</form>
<script>
/* added after answer
var kvk = '{{ __("add/customer/messages.noMatchKvk") }}';
*/
$('#kvk').keyup().on('change', function() {
// If the value is no longer equal to the DB
if ( $('#kvk').val() != '{{ $debtor->kvk }}' ) {
$('#noMatchKvk').html('<span class="help-block"><strong>' + kvk + '</strong></span>');
}
// If the value remains the same
if ( $('#kvk').val() == '{{ $debtor->kvk }}' ) {
$('#noMatchKvk').html('');
}
});
</script>
PS。我到处搜寻,但找不到答案。但是,我可能会问错问题。
先谢谢您! :)
编辑+解决方案
我没有提到邮件位于 en 目录中的另一个文件夹中。失败的原因是因为当我应该做斜线(/)时,我总是用点(。)提及路线。我已经编辑了问题。
猜猜这是菜鸟的错误,谢谢所有回答! 谢谢@Theodoros Alexopoulos的回答
答案 0 :(得分:2)
<script type="text/javascript">
var something = @json( __('file.variable') );
</script>
脚本应位于刀片服务器内部
然后根据需要使用变量
答案 1 :(得分:0)
我认为您必须在JS单引号内保留@lang
或{{ }}
调用:
$('#noMatchKvk').html('<span class="help-block"><strong>{{ __("messages.noMatchKvk") }}</strong></span>');
那样,或者您可以将{{ __("messages.noMatchKvk") }}
的值设置为变量,然后直接在代码中使用它:
var message = "{{ __('messages.noMatchKvK') }}";
$('#noMatchKvk').html('<span class="help-block"><strong>' + message + '</strong></span>');
第二种方法使其更具可读性。另外,请确保此<script>
位于.blade.php
文件中(看起来像,但是要注意一点;您不能使用@
或{ {1}}(直接放在{{ }}
文件中)
答案 2 :(得分:0)
不在.js文件中使用此脚本标签内的变量,则可以在脚本标签内或.js中使用变量
<script>
var v1 = '{{ @lang('file.value') }}';
$('#kvk').keyup().on('change', function() {
// If the value is no longer equal to the DB
if ( $('#kvk').val() != '{{ $debtor->kvk }}' ) {
$('#noMatchKvk').html('<span class="help-block"><strong>' + v1 + '</strong></span>');
}
// If the value remains the same
if ( $('#kvk').val() == '{{ $debtor->kvk }}' ) {
$('#noMatchKvk').html('');
}
});