Ben McCormack
Ben McCormack

Reputation: 33118

Specify only the second parameter in a javascript function

The spec for the jQuery ajax.error function is:

error(XMLHttpRequest, textStatus, errorThrown)Function

I'm trying to catch the error and display the textStatus, but I can't figure out how to specify only the textStatus without having to put in a variable name for XMLHttpRequest and errorThrown. My code currently looks like this:

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: hbAddressValidation.webServiceUrl,
    data: this.jsonRequest,
    dataType: "json",
    timeout: 5,
    success: function (msgd) {
         //...
    },
    error: function (a,textStatus,b) {
        $("#txtAjaxError").val("There was an error in the AJAX call: " 
                                + textStatus);
    }
});

You can see in my code that I'm putting variables a and b as placeholders for the first and last variables in the error function. I know that in my success function, I'm only providing one parameter and it works fine, but in that case data is the first parameter. In the case of error, textStatus is the second parameter, but that's the only one I want to specify. Is this possible?

Upvotes: 2

Views: 3772

Answers (3)

Pointy
Pointy

Reputation: 414086

After programming in Erlang for a while, I started using "_" as the name of a variable that I don't care about. It's just a convention like anything else but it clarifies situations like that for me. Javascript seems to be OK with using "_" for more than one parameter, I think.

Upvotes: 4

SLaks
SLaks

Reputation: 888303

If you really want to, you can use the arguments array:

error: function () {
    var textStatus = arguments[1];    //Zero-based
    $("#txtAjaxError").val("There was an error in the AJAX call: " 
                            + textStatus);
}

However, it's a horrible idea; you should simply add an unsused parameter.

Upvotes: 3

Eric
Eric

Reputation: 97691

No. The closest that you can get is:

error: function (a,textStatus) {
    $("#txtAjaxError").val("There was an error in the AJAX call: " 
                            + textStatus);
}

Only the last parameters can be omitted

Upvotes: 1

Related Questions