jquery - jQuery更改表单提交的输入值
问题描述
我创建了一个从下拉选项接收值的表单字段。
On the front end, when a dropdown option is selected, the correct data appears; 但是,当您查看检查器时,该值仍然为空,并且在提交表单时,没有捕获任何数据。
这是代码:
$(window).load(function() {
$("#position").appendTo(".form-columns-1");
$("#position").change(function(){
var positionValue = $("option:selected").val();
$('input[name=bdm_position]').val(positionValue);
});
});
我在这里想念什么?
解决方案
编辑
“......它在前端工作,但是当你提交表单时,值没有传递。”
<form>
现在添加了A ,它将提交到实时测试服务器,其响应被重定向到<iframe>
位于<form>
. 查看演示:
选择
<option>
一个<select>
......注意该
<input>
值设置为该<select>
值。接下来点击Submit按钮...
...注意下面打印的服务器响应
<iframe>
:
{ "args": {}, "data": "", "files": {}, "form": { "bdm_position": "B" }, "headers": {...
如果您选择了“B”,则该结果是预期的
在附加之前没有看到
$('#position')
它是如何存在的,所以我猜了。问题是<select>s
直接访问标签本身的值:
$('select').val()
演示
var pos = $(`<select id='position'>
<option val='A'>A</option>
<option val='B'>B</option>
<option val='C'>C</option>
<option val='D'>D</option>
</select>`);
pos.appendTo(".form-columns-1");
pos.on('change', function() {
$('input[name=bdm_position]').val($(this).val());
});
<form id='ui' action='https://httpbin.org/post' method='post' target='view'>
<fieldset class='form-columns-1'>
</fieldset>
<input name='bdm_position'><input type='submit'>
</form>
<iframe name='view'></iframe>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
推荐阅读
- javascript - 我的功能的点击仅在我点击链接/按钮两次时触发
- sql - 屏蔽实际值 - 我想将 SQL 服务器表中的字母数字值屏蔽为 x
- javascript - Vue.js 不使用 TextTrackCueList 更新 DOM
- php - 自定义 Laravel Passport,使其可以与自己的模型 + JWT 一起使用
- chart.js - 将 chartjs-plugin-annotation 与 ng2-charts 一起使用
- html - 有没有办法仅使用 css 或 html 使文本填充按钮大小?
- javascript - 通用打字稿组件继承组件道具
- php - 如何将生成的图像文件移动到 PHP 中的自定义目录?
- reactjs - 使用代码美化与呈现的内容 reactjs
- wpf - wpf使用列名检查datagrid单元格值