Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将表单值设置为输入名称但发送id?_Javascript_Php_Jquery_Laravel - Fatal编程技术网

Javascript 如何将表单值设置为输入名称但发送id?

Javascript 如何将表单值设置为输入名称但发送id?,javascript,php,jquery,laravel,Javascript,Php,Jquery,Laravel,我有一个表单输入字段,如下所示: <input list="materials" name="material_id" placeholder="Nazwa materiału" autocomplete="off"> <datalist id="materials"> @foreach($materials as $material) <option value="{{$material->id}}">{{$material-&

我有一个表单输入字段,如下所示:

<input list="materials" name="material_id" placeholder="Nazwa materiału" autocomplete="off">
    <datalist id="materials">
    @foreach($materials as $material)
    <option value="{{$material->id}}">{{$material->name}}</option>
    @endforeach
    </datalist>

@foreach($materials作为$material)
{{$material->name}
@endforeach

它显示了一个物料(名称)列表,但它与物料id(外键)相关,因此它必须发送一个id值,但这可能会让用户非常困惑。如何将其设置为发送id值,但在字段中保留“物料名称”?(我知道它可能来自jscript或jquery,但我对它们一无所知)

您需要像这样使用
onchange
事件

$('select').on('change', function() {
  alert( this.value );
  //Do something
})
<select>
    @foreach($materials as $material)
    <option value="{{$material->id}}">{{$material->name}}</option>
    @endforeach
</select>
你的html应该是这样的

$('select').on('change', function() {
  alert( this.value );
  //Do something
})
<select>
    @foreach($materials as $material)
    <option value="{{$material->id}}">{{$material->name}}</option>
    @endforeach
</select>

@foreach($materials作为$material)
{{$material->name}
@endforeach
范例

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <script type="text/javascript">
            $(document).ready(function() {
                $('select').on('change', function() {
                  alert( this.value );
                })
            });
        </script>
    </head>
    <body>
    //other things
    <select>
        @foreach($materials as $material)
        <option value="{{$material->id}}">{{$material->name}}</option>
        @endforeach
    </select>
    </body>
    </html>

$(文档).ready(函数(){
$('select')。在('change',function()上{
警报(该值);
})
});
//其他事情
@foreach($materials作为$material)
{{$material->name}
@endforeach

将物料id存储在数据值上,如

@foreach($materials as $material)
<option data-value="{{$material->id}}">{{$material->name}}</option>
@endforeach
@foreach($materials作为$material)
{{$material->name}
@endforeach

您的问题令人困惑。您是如何发送Id的?能否向我们展示$materials的数据集?为什么不使用菜单?因此您可以从列表中选择一个名称:ex.Pen,但它会用Id值ex.1填充输入字段。我认为您的做法是正确的。但是我不知道如何处理jscript,在哪里放置它,以及如何使用它。参见下面给出的示例您可以放置脚本主体标记或头部标记我认为给出的示例足以理解我认为您希望通过选择与$material->id对应的矩阵名称来获取一些数据