Skip to content Skip to sidebar Skip to footer

Call Javascript Onchange Event By Programmatically Changing Textbox Value

the problem I'm facing is this: I have a textbox for a date range along side a calendar control. When the user selects a date from the calendar, it fills that date into the text

Solution 1:

This is an old question, and I'm not sure if it will help, but I've been able to programatically fire an event using:

if (document.createEvent && ctrl.dispatchEvent) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", true, true);
    ctrl.dispatchEvent(evt); // for DOM-compliant browsers
} elseif (ctrl.fireEvent) {
    ctrl.fireEvent("onchange"); // for IE
}

Solution 2:

You're misinterpreting what the onchange event does when applied to a textarea. It won't fire until it loses focus or you hit enter. Why not fire the function from an onchange on the select that fills in the text area?

Check out here for more on the onchange event: w3schools

Solution 3:

You can fire the event simply with

document.getElementById("elementID").onchange();

I dont know if this doesnt work on some browsers, but it should work on FF 3 and IE 7+

Solution 4:

Onchange is only fired when user enters something by keyboard. A possible workarround could be to first focus the textfield and then change it.

But why not fetch the event when the user clicks on a date? There already must be some javascript.

Solution 5:

You're population is from the server-side. Using the registerclientscript will put the script at the beginning of the form.. you'll want to use RegisterStartupScript(Block) to have the script placed at the end of the page in question.

The former tries to run the script before the text area exists in the dom, the latter will run the script after that element in the page is created.

Post a Comment for "Call Javascript Onchange Event By Programmatically Changing Textbox Value"