关键事件的输入字段的JQuery SetAttribute

时间:2013-02-04 14:38:08

标签: javascript jquery

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

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

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

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

3 个答案:

答案 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');
});