这是一段简单的代码:
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/