Search code examples
javascriptonchangepreventdefault

preventDefault() not working for change event


Any ideas why preventDefault is not working? Here's the code below . . . Tks!

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">

    $(document).ready(function() {
        $("#text1").change(function(e) {
             e.preventDefault();
        });
    });

function myFunc() {
    alert("Random, annoying alert");
}

</script>
</head>

Just one HTML element in the form:

<body>
<form name="test" method="post">
    <input name="text1" id="text1" type="text" onchange="myFunc();">
</form>
</body>

Solution

  • You can’t use preventDefault on change events because it’s not cancelable:

    $("#text1").change(function(e) {
        alert(e.cancelable?"Is cancelable":"Not cancelable");
    });
    

    The cancelable property is true only on events that can be prevented.