And*_*ius 10 jquery input attr
在我完成网站之后我遇到了这个问题,因为我必须在基于ajax的页面中实现历史记录(这需要用html更新某些地方(包括带有简单文本输入的表单- 这就是问题所在 - 他们没有得到它们的值被赋值,因为它们的值由val()而不是由attr()设置 - 谎言)).我注定要替换所有的javascript
$('#xxx').val('someValue');
Run Code Online (Sandbox Code Playgroud)
至
$('#xxx').attr('value', 'someValue');
Run Code Online (Sandbox Code Playgroud)
还是有希望绕过这个?
一个漂亮的简单的例子在这里.正如您在对话框中看到的,属性值未在html代码中设置.
ade*_*neo 15
它使用底层本机element.value = 'someValue',当然设置元素的value 属性
element.property_to_set = 'new_value';
Run Code Online (Sandbox Code Playgroud)
所以它不会改变属性
element.setAttribute('value', 'someValue')
Run Code Online (Sandbox Code Playgroud)
这是什么attr()内部,而prop()改变属性,就像val().
它更改属性的原因是属性是表单提交中使用的属性,它通常用于在javascript中返回值,因此坚持属性而不是属性是有意义的,因为该属性通常仅用于设置属性的初始值,稍后使用javascript更改属性不会更新属性,这将是您所拥有的属性的相反问题,并且它将影响所有表单提交并成为一个重大问题.