Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript val()工作正常-除非我将真正需要的值传递给它_Javascript_Jquery - Fatal编程技术网

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

Javascript val()工作正常-除非我将真正需要的值传递给它,javascript,jquery,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

下面是一段简单的代码:

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
工作正常。 如果我将选定的结果_clone.text()分配给它,它不会更改该值

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

在chrome的调试控制台上,只有令人毛骨悚然的沉默


其他信息:

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

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


不过,这对我来说毫无意义,我仍然想知道原因。

我将首先尝试知道
form\u li.find(…)
方法返回多少个对象。然后我会检查一下

form_li.find('input.ajax_selection').attr("value",new_value)

行不行。代码太少很难回答,抱歉

您的新问题的答案可以在该问题中找到:


要理解这一点,您需要知道val()是prop('value')的快捷方式。

typeof new_value“是否返回'string'?另一种盲目尝试,您从$selection.val(new_value+'')中得到了什么?使用$selection.val(新的_值+testtest')?如果这两项都不起作用,您能否在问题中发布新的_值的内容(由console.log()在第3行之后返回)——编辑:看到刚才添加的详细信息,您使用的是jQuery 1.6吗?它是什么类型的输入,文本?所有“.val()”应该做的就是更新“值”-你所说的“val()属性没有”更新是什么意思?您应该检查Chrome网络工具以查看实际的HTTP请求。颠倒操作顺序。也就是说,首先分配
新的\u值
,警报
新的\u值
,然后分配。确保分配的是您认为自己是什么。如果执行
val(String(new_value))
,会发生什么情况?添加该代码是因为存在问题。斯雷。如果您仔细阅读这个问题,特别是围绕“当将任意字符串传递给新的_值时,第4行中的val可以完美工作”的问题,您会注意到您的案例是如何被仔细考虑的。无论如何谢谢你!谢谢天啊,太棒了!作为一个仍然困惑但好奇的旁观者,我仍然不明白为什么这会让val()失败。prop('value')不应该总是像预期的那样工作吗?如果我正确理解了问题,val()正在工作,但是OP正在检查dom检查器中的value属性,而这个属性没有更新,这是正常的。尝试在输入字段中输入一些文本,您将看到value属性没有在浏览器的dom检查器中更新;更新的是dom对象的属性。简言之,它起作用了,但OP检查了错误的东西以确认更改。