javascript - jQuery .val() 工作正常 - 除非我将它传递给我真正需要的值

标签 javascript jquery

这是一段简单的代码:

1  var selected_clone = selected.clone();
2  alert(selected_clone.text());
3  var new_value = selected_clone.text();
4  form_li.find('input.ajax_selection').val(new_value);

现在。

第 2 行(调试)输出的值正是我所期望的。 第 3 行是多余的,我知道,但我用它来测试:当将任意字符串传递给 new_value 时,第 4 行中的 val 完美运行。 如果我将 selected_clone.text() 的结果分配给它,它不会更改值

问题是:为什么它的行为如此令人费解?

从 chrome 的调试控制台,只有令人毛骨悚然的寂静。


附加信息:

  • typeof(new_value) 为字符串;
  • 表单字段中的值实际上已更新:value 属性,但不是。
  • 关于后一点:不,这不是我的调试器。提交时发送的值未更新。
  • 请求发送未更新的值;而表格显示更新的表格。

天哪,这很奇怪。

我通过将第 4 行更改为:form_li.find('input.ajax_selection').attr('value',new_value); 解决了这个问题。

虽然这对我来说没有丝毫意义,但我仍然想知道为什么。

最佳答案

可以在该问题中找到新问题的答案:.prop() vs .attr()

要理解你需要知道 val() 是 prop('value') 的快捷方式

关于javascript - jQuery .val() 工作正常 - 除非我将它传递给我真正需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6153732/

相关文章:

javascript - Web 表单中的 Jquery 对话框

javascript - PushState 上的进度条

javascript - Mocha 因 "timeout exceeded"失败

javascript - Vue.js:当用户登录或未登录时,根据 Vuex Store 状态显示/隐藏导航栏上的按钮

javascript - onChange 事件未在 Chrome 中的文本框上触发

php - 单击按钮后仅刷新数据表

javascript - 允许在输入验证时使用特殊命令

javascript - 在 Angular 应用程序中重置谷歌验证码?

javascript - 在 Typescript 中实现 ng.IFilterService

c# - 将部分 View 加载到模态弹出窗口中