Ajax成功函数问题

时间:2012-02-03 08:52:33

标签: javascript jquery ajax

我的javascript看起来像那样。

有一些我无法弄清楚的问题,我错了

  • #status_message未显示生成的消息
  • $("#status").className = 'fail';不会覆盖当前班级

enter image description here

var message=$("#status_message"), form=$("#bcscan"), ids=$('#itemids'),proctype, destination, counter=0, tenWordCounter = 0, autoPostInterval=null, errorcount=0, successcount=0;

function ajaxPost() {
    formData = form.serialize()+'&process=Scan';    
    formUrl = form.attr('action');
    formMethod = form.attr('method');

    $.ajax({
        url: formUrl,
        type: formMethod,
        dataType: "json",
        data: formData,
        success: function (data) { 
            var now = new Date();
            if(data.err_detected==="yes")
            {     
                if(data.errors.indexOf(",") != -1)
                    errorcount=errorcount+data.errors.split(",").length;
                else errorcount=errorcount+1;                
                $("#status").className = 'fail';
                message =errorcount+" errors found";
                $('#errors').prepend(data.errors).slideDown("slow");                        
            }  
            $('#success').prepend(data.success).slideDown("slow");
            if(data.success.indexOf(",") != -1)
                successcount=successcount+data.errors.split(",").length;
            else successcount=successcount+1;              
            message +="Last submitted:"+now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
            $("#status_message").text(message); 
        }
    });   
}

Here is page in action

如果你想测试,请从选择中选择一些选项,输出db,ebay.fr并按“扫描”。输入10个数字,用逗号分隔41,42(它们存在于db表中)分隔。在第10位数后,它将通过ajax发布textarea。

3 个答案:

答案 0 :(得分:4)

对于消息,您已经声明了一个指向元素的jQuery对象:

var message = $('#status_message'), ...

然后你用覆盖字符串:

message = errorcount + ' errors found';

你应该打电话:

message.text('some string...')

更改其内容。

对于类更改,正确的语法是:

$("#status").addClass('fail');

答案 1 :(得分:1)

怎么样

$('#status').attr('class','fail');

这将覆盖当前的类。

答案 2 :(得分:0)

你尝试过这个吗? $("#status").addClass( 'fail');