如果用户在文本/复选框中输入一些字符,我想设置输入字段的属性。这是我正在尝试的link到Java脚本。以下是代码
<input type="text" />
<div id="output"></div>
$('input').bind('input keyup', function() {
$('#output').html($(this).val());
$(this).setAttribute('aria-invalid', 'true');
});
但它不起作用,有人可以指导我吗?
答案 0 :(得分:1)
您混淆了jQuery对象和实际的DOM节点。在该事件处理程序中,this
是DOM节点,$(this)
是引用它的jQuery对象。
DOM节点本身具有setAttribute
函数,jQuery对象具有.attr()
函数,因此:
this.setAttribute('aria-invalid', 'true');
or
$(this).attr('aria-invalid', 'true');
答案 1 :(得分:1)
的 LIVE DEMO 强>
尝试使用data
属性而不是.data()
方法。这很容易:
$('input').on('input keyup', function() {
$('#output').html( this.value );
$(this).data('aria_invalid', 'true');
});
答案 2 :(得分:0)
jQuery对象没有.setAttribute()
方法。使用JQuery的.attr()方法(或Dom Element .setAttribute()方法)
$('input').bind('input keyup', function() {
$('#output').html($(this).val());
$(this).attr('aria-invalid', 'true');
// or
// this.setAttribute('aria-invalid', 'true');
});