我感觉自己真的很愚蠢,不确定是否做了一些非常愚蠢的事情......所以请提前原谅。
我有以下 HTML:
<input type="text" value="0" name="pcscubes" id="pcscubes">
我有以下 jquery 语法:
var cubes=123.2;
$("#pcscubes1").val(cubes);
var test=$("#pcscubes1").val();
alert(test);
jquery执行时,输入框会显示123.2,alert为123.2。
如果你检查 html 对象,值仍然是 0?
因此输入的显示与实际值不同。所以当我提交此表单时,它会显示 0 而不是 123.2
现在我已经使用这种语法构建了一个完整的网络应用程序并且运行良好。今天它只是停止工作?我重新启动了浏览器,检查了正在运行的旧代码,注销并重新登录,但它仍然执行相同的操作。
web 应用程序显然在这个表单上加载了 jquery 和 jquery ui。
使用代码点火器?
当我为如此愚蠢的事情而苦思冥想时有什么想法....
出于兴趣,我创建了下面的 fiddle ,它也在做同样的事情吗? http://jsfiddle.net/49nqU/
为什么显示123.2时数值为0?
一如既往的感谢
最佳答案
这是属性与属性的对比。
您在检查器中看到的是 value
属性,当您以编程方式更新字段的 value
时,它不会更新属性(property)。
不要在意 DOM 检查器说的是什么;它只会显示页面加载时的值(除非您显式更改字段的值 attribute 而不是像 jQuery 的 val()
那样,它的 值
属性。)
进一步阅读:http://jquery-howto.blogspot.co.uk/2011/06/html-difference-between-attribute-and.html
一些属性与对应的属性密切相关。也就是说,更新属性也会更新属性。例如,class
属性及其对应的 className
属性就是这种情况。但是,value
是不同的;更新属性不会更新属性(但是,只是为了进一步混淆,更新属性会更新属性!)
关于javascript - html 输入显示不同的文本到它发布的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25061547/