Dynamically Add (OnKeyDown) Event Listener
May 9, 2011
I have a form with many, many, many 'input type="text"' elements in it. I'd like to be able to dynamically add an 'onKeyDown' event listener. Here's what I've got, so far (I know it's wrong.)
Code:
function addEventToElement(formName,tagName,typeName,eventName,eventAction) {
thisForm = (typeof formName == 'string') ? document.getElementById(formName) : '' ;
thisTag = (typeof tagName == 'string') ? tagName : '' ;
thisType = (typeof typeName == 'string') ? typeName : '' ;
thisEvent = (typeof eventName == 'string') ? eventName : '' ;
thisAction = (typeof eventAction == 'string') ? eventAction : '' ;
if(thisForm != "") { // If elements are in a form, make sure ONLY those elements are affected
elem = new Array(); elem = thisForm.getElementsByTagName(thisTag); // array of all items of [tag]
alert(elem.length);
if(thisType != "") {
for(j=0;j<elem.length;j++) {
if(elem[j].type != thisType) { elem.splice(j,1); } // If a type is specified, remove tags that do not have a type attribute
}
}
}
else { // Otherwise, any/all elements in a document/body will be affected
elem = new Array(); elem = document.getElementsByTagName(thisTag); // array of all items of [tag]
if(thisType != "") {
for(j=0;j<elem.length;j++) {
if(elem[j].type != thisType) { elem.splice(j,1); } // If a type is specified, remove tags that do not have a type attribute
}
}
}
if((thisEvent != "") && (thisAction != "")) {
for(i=0;i<elem.length;i++) { // All elements are picked - let's apply some attributes
document.getElementById(elem[i].id).addEventListener(thisEvent,thisAction,false)
}
}
}
HTML Code:
addEventToElement('form_name','input','text','keydown','return numbersOnly(event,this);');
View 7 Replies
ADVERTISEMENT
Apr 9, 2011
in the below code I am trying to dynamically add a button and an event listener to it.
Code:
<html>
<head>
[code]....
View 4 Replies
View Related
Apr 3, 2007
I have an iframe that includes a button:
<input type="button" value="close this window" onclick="window.close();" >
I would like to detect the iframe close event from the parent window, I
was using this code but I did something wrong because the temp function
is fired every time the parent page loads:
function temp(){
alert('the iframe was closed');
}
function setup(){
var myIFrame = document.getElementById("iframe1");
if (myIFrame.addEventListener) {
myIFrame.addEventListener('onclose', temp(), false);
}else if (myIFrame.attachEvent) {
myIFrame.attachEvent ('onclose',temp);
}else{
myIFrame.onclose=temp();
}
}
window.onload=setup;
View 4 Replies
View Related
Mar 21, 2007
I have a javascript/MSHTML editor loaded in an IFrame call "msEditor1". It gets composed after the document loads through document.write commands from a JS function. I'm trying to set the editor so whenever a key is typed I capture the key event from the editor and then go from there.
I have a handle to the editor using either one of these:
View 9 Replies
View Related
Nov 29, 2011
I am having a play around with javascript and the html5 canvas to evaluate the feasibility of using it for a few personal projects.I have tried using both setInterval or setTimeout to set up a very rough framerate for an animation.The framerate is fine when coupled with a simple delta timing to smooth out the changes however when running under a large load (large images) I cannot seem to capture keyboard events very easily.
If I wiggle around the mouse a bit, it makes the keyboard more responsive but is there any way to get the window to poll the inputs rather than wait for an event to fire?This is much worse on Linux but the issue is still around on Windows.
View 3 Replies
View Related
Aug 24, 2007
I've got a really simple function I want to create, a confirm delete function that is applied to all links with a class of delete. A confirm message appears when the link is clicked, returning false if cancel is clicked.
This is my code and for whatever reason that I just don't get (coz I'm a bit confused by all this stuff), clicking cancel when the confirm message appears seems to return true regardless. Code:
View 4 Replies
View Related
Aug 25, 2010
The html part:
Code HTML4Strict:
<div id='data'></div>
<form action="">
<input id="nomeInput" type="text" name="nomeInput" value="" autocomplete="false"/>
[Code].....
This is the entry point for doing an autocomplete, but for know, I would just like to ask:
What should we do so that, the text that is typed, appears on that alert box?
View 6 Replies
View Related
Jan 5, 2007
How do I add an event listener to a few text boxes that prevents the user from typing anything but digits. I use the numbers entered in the text boxes in calculations afterwards so I don't want the user to enter "one" instead of "1" etc... Also, the range of possible numbers is too big for a drop down menu.
View 6 Replies
View Related
Mar 22, 2007
I'm writing a custom script to collect attributes from links and concatenate them to pass as a string to another function. I'm using a readily-available 'addListener' function so the click event doesn't overwrite others on the page. All this seems to be working in all browsers except IE6, and I suspect it may have something to do with event bubbling. Can anyone see my errors and any other ways I could improve the script? Code:
View 4 Replies
View Related
Sep 4, 2010
I'm trying to use the addEventListener function to set an event listener but I don't understand why it won't work. Before i was using another method to handle events, but I needed more control over which event handlers get run and when.
Code:
<html>
<head>
<script type="text/javascript">
function runMe(){
[Code]....
I'm using Google Chrome, but it won't work in Firefox either. Obviously it won't work in IE, since IE doesn't support that method. The script gives no errors at all. The runMe() function does get executed, I tested this with alerts.
View 3 Replies
View Related
Oct 16, 2006
I want each instance of an object to be able to listen for input events.
When the event occurs, a method of the object should be called, such
that "this" is in scope and refers to the object instance.
Is this possible? Example:
function MyConstructor(element)
{
//element is some HTML element
this.addListeners(element);
this.foo = "Bar";
return this;
}
MyConstructor.prototype.addListeners = function(element)
{
element.addEventListener("keypress", this.doSomething, true);
}
MyConstructor.prototype.doSomething = function(e)
{
alert(this.foo.length); //Error: this.foo has no properties
alert(this);
//shows the HTML element that triggered the event
}
Is there any way to get "this" to refer to the object in the event listener?
View 6 Replies
View Related
Dec 31, 2009
Inline scripting makes this easy but I'm getting Typeof MissMatch error when I use Unobtrusive script and I think it's because of the diffrence between DOM and DHTML.
INLINE:
HTML Code:
Unobtrusive attach event listner/external js.
Code:
This writen in the js of the index.html containing the IFRAME 'display' runs once imediatley on load then imediatley after throws 'typeof mismatch' error.
View 8 Replies
View Related
Jul 23, 2009
I tried to append a table row to a table by clicking on a button. And inside the table, I put a link so i can click that and remove the row. I was using jquery.flydom plugin, by the way. [code]...
View 1 Replies
View Related
Jun 10, 2010
I'm working with nested functions and trying to pass a 'this' value to an anonymous being used in an assignment for an event listener.So, this should plop a button inside our DIV and when clicked I'd like it to run the alert-ding; unfortunately it seems to want to run the function as defined under the buttons object which doesn't work out too well.
View 3 Replies
View Related
Jun 28, 2010
Event Listener. From what I understand it will check all events until a defined event happens, such as rollover of a certain image, and then it activates a function? What I want to do is use this so that when I rollover a element such as below:
<img src="img url" alt="this is a tooltip" tooltip="true" />
I want it to pass the obj to a function which then runs, and then once the mouse of not over that element it will activate another function passing the previous object to this function.
Although an element such as the example below would not activate these functions:
<img src="img url" alt="this is a tooltip"/>
As the tooltip tag does not exist or has the value of false. Also, wouldn't this use a lot of resources as it checks every event which the mouse passes over?
View 40 Replies
View Related
Sep 19, 2011
I am trying to add a window event listener on some links in a loop instead of doing them one by one. I've tried
function setListeners (){
for (var i = 0; i < document.links.length; i++) {
src=document.links[i].href;
document.links[i].onmousemove=changeIframeSrc(src, 'solid',1, event);
document.links[i].onmouseout=changeIframeSrc(null,'none',0,event);
[Code]...
View 17 Replies
View Related
Nov 21, 2011
I am testing some code that finds and element and attempts to add an event handler attribute to it as 'onclick' (test case in Firefox 3.5.9)
/*
The actual code is:
window.onload = function()
{
//<irrelevant code>
var test = document.getElementById('tstEl');
[Code]...
I am trying to do this because Element.addEventListener or Element.attachEvent won't allow for arguments to be passed to the event handler code/function. What is going on here? The only line referenced, line35, in the document text containing javascript code is irrelevant to the problem.
View 6 Replies
View Related
Nov 5, 2009
I need to pass the 'id' variable from the event listener to the callback function, 'moveObject'. The moveObject function needs to know the id of which element it should act upon. How can I pass this variable?
View 3 Replies
View Related
Aug 18, 2010
I'm not new to JS, or the web and it's various other technologies, but I ran into a problem. I'm trying to add an event handler for a click on all HTML span tags. Trouble is, getElementByTags() doesn't work and neither does getElementByTagNames(). Strangely, adding an id to the span tags and getting their id's do trigger the handler.
Code:
document.getElementsByTagName('span').addEventListener('click',doSomething,false);
function doSomething() {
alert(this);
View 2 Replies
View Related
Mar 22, 2011
How would i add an avent listener to change the source of an image? I have added the image to a canvas element through javascript using the code below.
var start = new Image();
start.src = "start.jpg";
ctx.drawImage(start, 50, 50);
View 3 Replies
View Related
Feb 4, 2010
I'm experiencing some problems with setting "onkeydown" dynamically.I want to pass some parameters to the function which recieves the event.So I did this:
mydiv.setAttribute('onkeydown','ShowInput(this,''+divID+'');
Only of course it doesn't work in IE.So I tried setting it the other way:
mydiv.onkeydown = ShowInput;
But that way I cannot pass parameters?
View 2 Replies
View Related
Jul 30, 2010
I've got an Event Listener
$(".SFV").click(function(event) ...
And I've got an submit button
< ... type="submit" class="SFV">
When this button is displayed in a normal html-script, the event listener works. When I insert this button into the same script with the help of
$.post("do/setFieldVal_Input.php", {table:table, whereFieldName:whereFieldName, whereVal:whereVal, setFieldName:setFieldName, idHtml:idHtml}, function(data)
{
[code]....
then the listener does not work anymore.
View 8 Replies
View Related
Aug 20, 2006
The problem:
I have an XHTML STRICT page which has some event listeners attached for onload and resize. I'm doing a bit of Javascript DHTML on these events. When a user changes the browser font size, the javascipt function needs to run. Although the TOPMENU DIV gets resized when the font changes size, its not a page resize so the function doesn't get run. I fixed this in IE6 by using a second function which is run onload and sets an event on the div object in the page after its been defined.
Problem is this doesn't work in Firefox.
Mozilla DOM reference says there is no resize event on a DIV so is there a work around to make it work in FIREFOX? i.e. can I force a resize event to happen on a div in firefox or is there some other event I can trap when a user changes the browser font size?
here's my js code: topmenu is what I'm trying to trap the resize event from.
this code is loaded in the head of the page.
function maindiv(){
estartup=document.getElementById("startup");
econtain=document.getElementById("contain");
emain=document.getElementById("main");
etopmenu=document.getElementById("topmenu");
emaincontent=document.getElementById("maincontent");
nopx = document.childNodes ? 'px' : 0;
contw = document.body.clientWidth - 80;
conth = document.body.clientHeight - 80;
if (contw < 0) { contw = 0;}
if (conth < 0) { conth = 0;}
econtain.style.width = contw+nopx;
econtain.style.height = conth+nopx;
if (conth >= 100 + etopmenu.clientHeight) {
emain.style.height = (conth - etopmenu.clientHeight - 100 )+nopx;
}
if (contw >= 172) {
emaincontent.style.width = (contw - 172 )+nopx;
}
estartup.style.visibility = 'hidden'
}
function fsize() {
etm=document.getElementById("topmenu");
if (typeof window.addEventListener != 'undefined')
{
etm.addEventListener("resize", maindiv, false);
}
else if (typeof document.addEventListener != 'undefined')
{
etm.addEventListener("resize", maindiv, false);
}
else if (typeof window.attachEvent != 'undefined')
{
etm.attachEvent("onresize", maindiv);}
else
{
window.alert('Failed to attach an Event Listener
Please Report');
}
}
if (typeof window.addEventListener != 'undefined')
{
window.addEventListener("load", maindiv, false);
window.addEventListener("load", fsize, false);
window.addEventListener("resize", maindiv, false);
}
else if (typeof document.addEventListener != 'undefined')
{
document.addEventListener("load", maindiv, false);
document.addEventListener("load", fsize, false);
document.addEventListener("resize", maindiv, false);
}
else if (typeof window.attachEvent != 'undefined')
{
window.attachEvent("onload", maindiv);
window.attachEvent("onload", fsize);
window.attachEvent("onresize", maindiv);
}
else
{
window.alert('Failed to attach an Event Listener
Please Report');
}
Any clues?
View 11 Replies
View Related
Oct 26, 2007
I want to switch a big function from a document.onkeydown = function to a document.onkeypress = function, or vice versa depeding on the type of browser.
However it is quite a big function so it's pretty much out of the question to have it appear in full twice.
Any ideas how to change the target event (onkeydown/onkeypress) without writing the whole function twice?
View 8 Replies
View Related
Jul 4, 2009
I got this problem with live() event.I have used it as follows.
$(".addressDiv span").live("mouseover", function(){
//clickable function here......
------------------------
});
I have used the live() event to trigger the function on mouseover in the dynamically added elements. But the problem i got is that once the live event is called it takes the class of the element and stores. And when the class of that particular element is changed dynamically the live() event does not detect the new classed added dynamically, instead it takes the former class. Live() event does not update the class.
View 3 Replies
View Related
Aug 24, 2011
I create buttons from an array of objects that such as:
buttons = [{ text: "button 1", action: 1}, {text: "button 2", action: 2}];
I then loop thru the array to assign the text and bind the click event after having created the buttons with IDs of "button_<index>".
for( var index in buttons ) {
$("#button_"+index).html ( buttons[index].text )
.click( function() { clickButton( buttons[index].action ) } );
}
The text appears correctly in the button, but every button defined only fires the list bound click, in this example the action equal to'2'whether I push "Button 1" or "Button 2".My actual case has four buttons, all firing the event for the fourth button.I've tried not chaining the .click(), going thru the loop twice once for the .html and once for the .click, neither of which made a difference. If I hard code each button .click, it works fine.
View 2 Replies
View Related