Your code should look more like this:
var dfd = $.ajax(...);
var dfd2 = $.ajax(...);
var deferreds = [];
if($("type").val() == "something")
deferreds.push(dfd)
if($("other").val() == "somethingElse")
deferreds.push(dfd2)
$.when.apply( $, deferreds )
.then( callback, failureCallback );