You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

手动输入后无法动态设置输入框文本值的jQuery技术问题

解决jQuery对话框输入框值不更新的问题

看起来你遇到的是输入框HTML属性与DOM属性不同步导致的典型问题,我来帮你拆解清楚:

问题根源

你现在用attr('value', $keepTitle)来设置输入框的值,这个方法修改的是输入框标签上的value HTML属性。但当用户手动在输入框中输入内容后,浏览器会优先更新输入框的DOM value property(这才是页面上实际显示的内容),而HTML属性不会同步跟着变化。所以当你再次打开对话框时,虽然代码更新了HTML的value属性,但输入框显示的是DOM property里保存的用户上次输入的内容,就会让你觉得第二行代码被忽略了。

修复方案

把设置值的代码从attr换成val()方法就行——它直接操作DOM的value property,能确保输入框显示最新的$keepTitle值:

$keepTitle = $('.nav-folder-text[pass="' + $to_edit_id + '"]').text();
// 用val()代替attr('value', ...)
$('#folder-typed').val($keepTitle);
new_f_dialo... // 你的对话框初始化/打开代码

额外优化(如果用jQuery UI Dialog)

如果你的new_f_dialo是jQuery UI的Dialog组件,建议把设置值的逻辑绑定到对话框的open事件上,这样每次打开对话框都会自动刷新输入框的值,避免后续维护时出现遗漏:

// 假设你的对话框初始化代码类似这样
$("#your-dialog-id").dialog({
  open: function() {
    // 每次打开时重新获取最新的标题并设置
    const $to_edit_id = // 这里获取当前要编辑的目标ID
    const keepTitle = $('.nav-folder-text[pass="' + $to_edit_id + '"]').text();
    $('#folder-typed').val(keepTitle);
  },
  // 其他对话框配置项
});

这样不管用户之前有没有修改过输入框内容,每次打开对话框都会自动加载最新的标题啦~

内容的提问来源于stack exchange,提问作者Jahusek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:37:42