html输入显示它发布的不同文本到值

时间:2014-07-31 14:30:03

标签: javascript jquery html codeigniter input

我感觉真的很蠢,不确定做些什么真的很蠢......所以请原谅我。

我有以下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,警报将为123.2。

如果检查html对象,值仍为0?

因此输入的显示与实际值不同。因此,当我提交此表单时,它会发布0而不是123.2

现在我使用这种语法构建了一个完整的Web应用程序并且运行良好。今天它停止工作?我重新启动了浏览器,检查了正在运行,注销和打开的旧代码,但它仍然是这样。

web app显然在这个表单上加载了jquery和jquery ui。

使用codeigniter?

任何想法,因为我正在敲打那些愚蠢的东西......

出于兴趣,我创造了下面的小提琴,它也在做同样的事情? http://jsfiddle.net/49nqU/

enter image description here

为什么在显示123.2时值为0?

一如既往地谢谢,

2 个答案:

答案 0 :(得分:13)

这是属性与属性的情况。

您在检查器中看到的是value 属性,当您以编程方式更新字段的value 属性时,该属性不会更新。

不要理会DOM检查员说的话;它只会显示加载页面时的值(除非您明确更改字段的值属性而不是jQuery&#39; s val()它的value 属性。)

进一步阅读:http://jquery-howto.blogspot.co.uk/2011/06/html-difference-between-attribute-and.html

某些属性与其财产对应物密切相关。也就是说,更新属性也会更新属性。例如,class属性及其className属性对应的情况就是这种情况。然而,value是不同的;更新属性不会更新属性(但是,为了进一步混淆,更新属性 更新属性!)

答案 1 :(得分:2)

val()正在更改value属性,而不是属性。 value属性在页面加载时初始化。更改文本字段后,value属性和属性具有不同的值。

但您也可以使用普通JS来更改value属性。

尝试:

var cubes=123.2;
document.getElementById('qty').setAttribute('value',cubes);
var test=$("#qty").val();
alert(test);

DEMO