使用jQuery设置表单文本值问题:.val()仅获取初始值而非修改值
解决.val()只能获取文本框初始值的问题
老哥,我太懂你这个困扰了!你大概率是只在页面初始化的时候获取了一次field1的值,之后不管用户怎么修改field1,你的代码都没重新去读取最新的内容,所以才一直拿到初始的'please'。
下面给你两种靠谱的解决思路,按需选:
1. 实时监听输入变化(推荐)
用input事件监听field1的每一次输入操作(打字、粘贴、删除都算),只要值变了就立刻更新field2:
HTML结构示例
<input type="text" id="field1" value="please"> <input type="text" id="field2">
jQuery代码
// 页面加载时先给field2赋初始值 $('#field2').val($('#field1').val()); // 绑定input事件,实时同步最新值 $('#field1').on('input', function() { // 这里拿到的就是field1当前的最新值 const latestValue = $(this).val(); // 更新field2的值 $('#field2').val(latestValue); // 如果需要更新你的helpMe变量,也在这里操作 helpMe = latestValue; });
如果你的需求是只有当field1失去焦点时才更新,可以把input换成change事件,它会在字段失去焦点且值有变化时触发。
2. 按需手动获取最新值
如果你不需要实时同步,而是在某个特定操作(比如点击按钮)时才更新field2,那就在操作触发时再去获取field1的当前值:
$('#someButton').on('click', function() { const currentValue = $('#field1').val(); $('#field2').val(currentValue); helpMe = currentValue; });
核心要点就是:不要只在页面加载时取一次值,要在值可能变化的时机(输入事件、点击事件等)重新获取。
内容的提问来源于stack exchange,提问作者R Lob
相关产品推荐
相关产品推荐

