javascript - 输入 |将 JavaScript 函数设置的新值获取到 Controller 公共(public)函数中

标签 javascript php laravel-5

我创建了一个 CRUD 来编辑现有的表行。

它的输入之一已经包含在创建行时保存的 value="19.00":

<input type="number" step="1" title="Prix" class="form-control" name="productprice" id="productprice" value="19.00">

当用户更改选择列表的值时,例如,如果其中一个产品属性发生更改并影响价格,我将使用 javascript 函数覆盖我的 CRUD 中的值:

$('#form').on('change', function() {

var d1 = document.getElementById('ordersdetailproducttype_ID').value; // producttypeID
// console.log('producttype ID:', d1);
var d2 = document.getElementById('ordersdetailproductname').value; // productnameID
// console.log('product ID:', d2);
    var d3 = document.getElementById('ordersdetaildessertservingID').value; // dessertservingID
// console.log('Servings:', d3);
var pl1 = document.getElementById('ordersdetailID_portion').value; // partyloafportionID
// console.log('pl1:', pl1);
var pl2 = document.getElementById('ordersdetailpartyloafweightID').value; // partyloafweightID
// console.log('pl2:', pl2);

if (d1 == '' && d2 == '' && d3 == '' && pl1 == '' && pl2 == '') { $('#ordersdetailproductprice').val('0.00'); }
else if (d1 == 1 && d2 == 1 && d3 == 1 && pl1 == '' && pl2 == '') { $('#ordersdetailproductprice').val('19.00'); }
else if (d1 == 1 && d2 == 1 && d3 == 2 && pl1 == '' && pl2 == '') { $('#ordersdetailproductprice').val('24.00'); }
...

在这种情况下,用户会在输入中看到新值(价格),

picture

通过检查元素结构我看不到的值:

<div class="form-group header-group-0 " id="form-group-productprice" style="display: block;">
<label class="control-label col-sm-2">Prix
        </label>

<div class="col-sm-10">
    <input type="number" step="1" title="Prix" class="form-control" name="productprice" id="productprice" value="19.00">
    <div class="text-danger"></div>
    <p class="help-block"></p>
</div>

如果我用检查器查看元素,我可以看到输入的值仍然是

value="19.00"

我需要在我的 Controller 中检索由我的 JavaScript 函数设置的新值,以便能够使用 Controller 公共(public)函数相应地更新我的表格行列。

第一次遇到这种问题,不知道怎么解决。感谢您的专业知识。谢谢,马克

最佳答案

当您为 input 字段设置默认值时,通过 val() 更改它不会影响它。

您需要使用 attr(),所以不要使用以下行:

$('#ordersdetailproductprice').val('0.00');

使用:

$('#ordersdetailproductprice').attr('value', '0.00');

然后您可以轻松获取输入值以发送到您的 Controller (我相信是通过 AJAX):

let value = $('#ordersdetailproductprice').val();

希望对你有帮助

关于javascript - 输入 |将 JavaScript 函数设置的新值获取到 Controller 公共(public)函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55018896/

相关文章:

javascript - 为什么我的 Jquery 和 Javascript 图表没有出现?

php - 使用查询作为数组插入多个值

Laravel 5 命令调度程序,如何传入选项

php - Laravel 关系结构

php - 如何在 javascript 中制作安全游戏?

javascript - 将对象从 Razor 添加到 js 列表不起作用

javascript - 使用 jQuery DataTable 的未定义值

php - php 数组最后一个元素的不同 css 样式

php - "Laravel 5.1"使用userId添加用户和项目

php - Laravel 5.0 utf8 转换?