当将文本输入表单时,jQuery onChange不会触发事件

时间:2011-10-17 21:52:47

标签: jquery

我有这个simeple jQuery代码:

$('#category_name').change(function() 
{
  alert('Handler for .change() called.');
  var category = $("#category_name").val();    
});

这种形式:

    <form id="problem_categories" name="problem_category_form" method="post">
         <p>
         Category Name: <input type="text" size="50" name="category_name" id="category_name"></input>
         </p>                
         <p>
            <input type="hidden" id="category_problem_id" name="category_problem_id" value="<?php echo $problem_id; ?>" />

            <span class="error"   id="category_error" style="display:none"> Please Enter Valid Data</span>
            <span class="success" id="category_success" style="display:none"> Category Added Successfully!</span>

            <input type="submit" class="button" value="Add Category"></input>
         </p>
    </form>   

但由于某些原因,当我在表单字段中输入文本时,jQuery不会触发。这是一个示例页面,可以在右下角进行:http://www.problemio.com/problems/problem.php?problem_id=51

3 个答案:

答案 0 :(得分:2)

您的代码正常运行,change事件在文本框失去焦点之前不会触发。

您可以尝试“keyup”活动。

答案 1 :(得分:2)

改为使用keyup:

$('#category_name').keyup(function() 
{
  alert('Handler for .change() called.');
  var category = $("#category_name").val();    
});

答案 2 :(得分:1)

这个怎么样?

$(function() {
    cat_name = document.getElementById('category_name');
    $(cat_name).bind({
        keyup : function() {
            alert('Handler for .change() called.');
            var category = $("#category_name").val();
        }
    });
});