在完成网站之后,我遇到了这个问题的方式,因为我必须在ajax基础页面中实现历史记录(需要使用html更新某些地方(包括简单文本输入的表单,那就是问题,他们没有得到)它们的值分配,因为它们的值由val()设置,而不是由attr())).我注定要替换所有的
javascript
$('#xxx').val('someValue');
至
$('#xxx').attr('value','someValue');
还是有一些希望绕过这个?
解决方法
它使用底层的本机element.value =’someValue’当然设置元素的value属性
element.property_to_set = 'new_value';
所以它不会改变这个属性
element.setAttribute('value','someValue')
这是attr()在内部,而prop()更改属性,就像val().它改变属性的原因是,该属性是表单提交中使用的,通常用于将值还原到javascript中,因此粘贴属性而不是属性是有意义的,由于属性通常仅用于设置属性的初始值,并且随后使用javascript更改属性不会更新属性,这与您正在使用的属性相反,这会影响所有表单提交并成为一个重大问题.