-1

如果用户在文本/复选框中输入一些字符,我想设置输入字段的属性。这是我正在尝试的 Java Script的链接。下面是代码

<input type="text" />
<div id="output"></div>

$('input').bind('input keyup', function() {
    $('#output').html($(this).val());
    $(this).setAttribute('aria-invalid', 'true');
});

但它不起作用,有人可以指导我吗?

4

3 回答 3

1

您混淆了 jQuery 对象和实际的 DOM 节点。在该事件处理程序中,this是 DOM 节点,并且$(this)是引用它的 jQuery 对象。

DOM节点本身有setAttribute功能,jQuery对象有.attr()功能,所以:

this.setAttribute('aria-invalid', 'true');
or
$(this).attr('aria-invalid', 'true');
于 2013-02-04T14:40:38.910 回答
1

LIVE DEMO

尝试使用data属性而不是.data()方法。这很容易:

$('input').on('input keyup', function() {
    $('#output').html( this.value );
    $(this).data('aria_invalid', 'true');
});
于 2013-02-04T14:54:25.610 回答
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');
});
于 2013-02-04T14:40:00.187 回答