javascript - HTML FORM - 使用 onchange() 更改部分只读字符串字段
问题描述
当单击下拉列表并在以下 HTML FORM 中使用 onchange() 函数时,我想将值 - 值和值 2 分配给 DATAID 和 DEPNUM 正在分配的位置是包含字符串的只读字段的一部分。我的目标是创建一个只读字符串,该字符串将包含我从下拉字段中选择的值,全部组合在一个字符串中并用下划线分隔。
我一直在尝试使用 onChange 方法“myFunction()”
<input name="_1_1_2_1" tabindex="-1" class="valueEditable" id="myInput" onchange="myFunction()" type="text" size="32" value="...">
这看起来像:
function myFunction()
{
var x = document.getElementById("myInput").value;
document.getElementById("demo").innerHTML = x;
}
最终我在段落上运行它:
<p id="demo" value="DATAID_DOCTYPE_DEPNUM_NTA">DATAID_DOCTYPE_DEPNUM_NTA</p>
问题是价值在
在我更改 value2 或 value 时不会立即更改。
解决方案
您可以为两个输入字段绑定两个事件侦听器,并通过以下方法更新只读文本字段值。
$(document).ready(function(){
$('#field1').keyup(function() {
updatedReadonlyFieldVal($(this), 0);
});
$('#field2').keyup(function() {
updatedReadonlyFieldVal($(this), 2);
});
function updatedReadonlyFieldVal(elem, index) {
let val = elem.val();
let destVal = $('#destination').val();
let splittedDestVal = destVal.split('_');
splittedDestVal[index] = val;
$('#destination').val(splittedDestVal.join('_'));
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="field1" name="field1">
<input type="text" id="field2" name="field2">
<input value="DATAID_DOCTYPE_DATANUM" readonly id="destination">
如果您有任何疑问,请随时告诉我。
推荐阅读
- php - 如何将参数传递给 Codeigniter 中默认控制器的索引函数
- asp.net-mvc - 如何在 ASP.NET MVC 5 项目中实现具有多个 html 页面和多个 js/css 文件的主题?
- javascript - jQuery将单击事件绑定到选择元素的每个选项上的按钮
- php - 我没有收到任何错误,但它不会将数据插入数据库
- reactjs - 列表中的数据在初始加载时不显示
- django - 将客户 GPS 位置上传到数据库
- javascript - html javascript中的输入字段
- google-sheets - 不同列中值的动态分布
- jquery - 基于 Spring Boot、Thymeleaf 和 JS 的技术组合选择
- java - 使用 JDBC 连接数据库时,Rest API 会返回一个空列表,而忽略从数据库带来的数据