我在模态窗口的输入中获得了价值,我不能将其用于路线
我试图使用jQuery来获得价值,但对我来说却行不通。
模式窗口HTML:
<div class="modal fade" id="deleteValueModal" role="dialog">
<div class="modal-content">
<div class="modal-header">
...
</div>
<div class="modal-body">
<form method="post" action="{{route('delete_value', $('#valueId').val())}}" id="deleteValueForm"
enctype="multipart/form-data">
<label>Are you sure that you want to delete?
</label>
</form>
</div>
<div class="modal-footer">
<input type="submit" id="valueId" name="valueId" value="" form="deleteValueForm" class="btn btn-primary">
</div>
</div>
</div>
JavaScript:
$(document).on("click", ".open-deleteValueModal", function () {
const myValue = $(this).data('id');
$(".modal-body #valueId").val( myValue );
IDE向我显示以下形式的jQuery代码警告
Expected: identifier
Laravel也向我展示jQuery的错误:
syntax error, unexpected '(', expecting variable (T_VARIABLE) or '{' or '$' (View: ... )
答案 0 :(得分:3)
假设您的命名路线delete_value
看起来像/posts/delete/{id}
。那么您应该使用以下默认值(例如“ 0”)呈现表单:
{{route('delete_value', 0)}}
现在,在渲染刀片之后,动作应如下所示:
http://localhost:8000/posts/delete/0
最后,您可以使用jQuery直接更新操作值,如下所示:
$(document).on("click", ".open-deleteValueModal", function () {
const myValue = $(this).data('id');
// Optional validation
if (parseInt(myValue) <= 0 || myValue == "") {alert('Some validation message');return;}
// Get the default route
var route = $("#deleteValueForm").attr("action");
// Remove the current ID value
route = route.substr(0, route.lastIndexOf("/")+1);
// Attach the new ID value to the route
route += myValue;
// Update the form action with the new route
$("#deleteValueForm").attr("action", route);
});
您将意外的值$('#valueId').val()
传递给route()方法,该方法中期望使用'String',[PHP => Array]或$(varible)。
只有在加载后才能更改DOM元素属性。
答案 1 :(得分:-1)
如果我是你,我会像这样更改模式打开中的表单动作
$('#deleteValueForm').attr('action', {{route('delete_value', $('#valueId').val())}})
$(document).on("click", ".open-deleteValueModal", function () {
const myValue = $(this).data('id');
$('#deleteValueForm').attr('action', {{route('delete_value', myValue)}})
})
这样,当您单击简单的表单时,表单已经具有提交到的路由
<input type="submit" value="Submit">
按钮