jQuery .val正常工作-除非我通过它真正需要的值

问题描述

|| 这是一个简单的代码块:
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属性没有更新。 关于后一点:不,不是我的调试器。提交时发送的值未更新。 请求发送未更新的值;而表单显示更新后的表单。 神圣的Shitzu,这很奇怪。 我通过将第4行更改为
form_li.find(\'input.ajax_selection\').attr(\'value\',new_value);
解决了这个问题。 但是,这对我来说丝毫没有意义,我仍然想知道为什么。     

解决方法

        您可以在以下问题中找到新问题的答案:.prop()与.attr() 要了解,您将需要知道val()是prop(\'value \')的快捷方式     ,        我首先尝试知道
form_li.find(...)
方法返回多少个对象。那我要检查一下
form_li.find(\'input.ajax_selection\').attr(\"value\",new_value)
工作与否。很难用这么少的代码回答,对不起     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...