JQuery专注于不通过新的1.7.1 .on()方法为Ajax返回html

时间:2012-01-07 01:33:48

标签: jquery

好的,我在这个墙上撞墙,所以任何帮助都非常感激。

我有一个html输入字段:

通过ajax调用返回的

(带有id:#data_input)。

然后在表单提交到#data_input字段的输入之前检查一下。

(注意:我在jquery的v1.7.1上)

如果没有输入任何内容,我可以通过以下方式更改字段的css以将其突出显示为红色:

$('#data_input').css('background-color','red')

并且工作正常,所以我可以很好地定位它。但是当我尝试通过以下方式进入字段时撤消红色背景时,我遇到了一个问题:

$('#data_input').on('focus', function(){$(this).css('background-color','white')}); 

但我一无所获。,有什么想法吗?

.live().focus()也不起作用:(

3 个答案:

答案 0 :(得分:1)

修改:已更新为在动态元素上使用.on。

同样的方案对我有用..请在此处查看DEMO,代码如下,

<强> HTML:

<div id="result" ></div>

<强> JS:

$('#result').on ('focus', '#input_field', function () {
    $(this).css ('background-color', 'white');
});

$('#result').on ( 'click', '#submit', function () {
    if ($('#input_field').text() == '') {
        $('#input_field').css ('background-color', 'red');
    }
});

//added to dom after the binding. see above code.
$('#result').append('<input type="text" value="" id="input_field" />' +
                    '<input type="button" value="Submit" id="submit" />');

答案 1 :(得分:0)

  1. 查看您编写的代码是否适用于ajax未返回的字段。
  2. 我假设您已经检查以确保完全调用焦点功能。
  3. 尝试使用onchange处理程序。
  4. 通过.addClass()
  5. 试试你的css
  6. 要求退款;)
  7. 尝试.focus(function(){});

答案 2 :(得分:0)

试试这个:

$(document).on('focus', '#data_input', function(){$(this).css('background-color','white')});