Are you sure your selector matches the correct input element?
Update
Can you trying binding the keyup event handler like the following?
$("input[type='search']").on("keyup", function () {
alert('keyup');
});
If there is another keyup event handler attached to text box which stops propagation of the event, then the event handlers registered using $(document).on("keyup", "input[type='search']", ... ) are not triggered. However, other event handlers that are registered using $("input[type='search']").on("keyup", ...) are triggered.
Here's a code snipped that demonstrates this behavior:
$(document).ready(function() {
var first_count = second_count = third_count = 0;
$("input[type=text]").on("keyup", function (event) {event.stopPropagation(); first_count = first_count + 1; $("#first-handler").html(first_count)})
$(document).on("keyup", "input[type=text]", function () {second_count = second_count + 1; $("#second-handler").html(second_count)})
$("input[type=text]").on("keyup", function () {third_count = third_count + 1; $("#third-handler").html(third_count)})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
First event handler invocations: <span id="first-handler">0</span> <br/>
Second event handler invocations: <span id="second-handler">0</span> <br/>
Third event handler invocations: <span id="third-handler">0</span> <br/>
<input type="text" placeholder="Type here" />
</div>
There are three event handlers attached to the input text. The First and Third event handlers are registered using $("input[type=text]").on and the Second event handler is registered using $(document).on. The First event handler stops the propagation of the event, because of which the second event handler is never triggered. However, the third event handler which is directly registered on the element is triggered irrespective of whether the event propagation stops or not.