I have a problem where there is an onBlur check for a valid entry. The javascript checks the entry and if it is incorrect it does an alert and then puts the focus back onto the incorrect field, so valid data has to be entered.
This is a generic function so it uses 'this' - onBlur="chkMonthDob(this);"
The function then checks it and puts the focus back on 'this' if it is wrong. This all works fine in IE but in Firefox it does not put the focus back.
Using the Firefox getaround :- setTimeout("document.orgsp.d1_org_dob_mth.focus()", 1); works, however, when it is called with 'this' as a parameter you don't know what the field is to be focussed on, so I had hoped that putting :-
var focusField = myField.id;
setTimeout("document.getElementById(focusField).focus()", 1);
would work - but Firefox say focusField is undefined.
I have an AJAX application for a form that has 4 columns and 170 rows. It uses an onblur call to update a database each time you move out of a cell. This works fine.
Client wanted to validate for a number so I added a function to check for this and an alert call if the numer check failed. This works fine.
However, dismissing the alert results in the focus moving to the next cell rather than returning to the invalid cell. Big problem. I have been successful in coding focus to go to any other cell in the table except the one with the errror. Code:
I'm having a problem returning focus back to an input field in Netscape. The code works in IE and Opera but not in netscape6+.
Basically I have a function that is called upon exiting a form field, if the value validates properly it returns true and calls another function, if it doesn't validate the field it returns false and I want to give focus back to the sender and highlight all of the text in the field.
The problem is that while IE and opera return the curser back to the field - Netscape ignores the focus statement (I still can't find any examples as to how to return the curser and highlight the text in the field). Code:
I have a requirement to handle dates by using three fields, a (year) text field and two (month and day) selects. I fill the selects using jQuery, which works beautifully. However, I have an onblur handler for the year field that handles filling the month select and an onblur handler for the month select that handles filling the day select. Part of this is to get the right number of days for a month (and for leap years), but part of it is also to force users to enter the data in order so that I can process it correctly.
However, I check in both the onblur handler of the year text box and the onblur handler of the month select whether or not the year value is entered (since if it isn't, there's no point in continuing to the day field). If there is no year value, I call
$year.focus();
and exit the handler.
Unfortunately, the focus when all this returns is still on the month select. Adding "event.preventDefault()" and "event.stopPropogation()" within the handler have no effect.
I have a feeling that there's something very subtle going on that I'm missing. Among the points I have realized is that calling $year.focus() in the year onblur handler may activate the month onblur handler (since the month is the next input, I assume it gets focus when the year is blurred). This should not have any effect, since both handlers check for the year value just in case - but I wanted to note it in passing.
I have a parent page that opens a popup (chat) i wont that where someone send a msg to a user the popup to get focused.
I have a function on popup window that runs everytime a user get msg I put "self.focus()" on that function and this work fine in IE but not in Firefox.
I have a scrolling div that I am changing text color and background color on a mouse over of a marker on a map. I also want the div with the proper ID to come to the viewable area of the scrolling div when I mouse over the marker on the map. Code:
I'm trying to get a popup to keep focus when it is re-clicked. The script below is supposed to produce this exact behaviour, however it doesn't work, at least on firefox 1.0.7 and moz 1.7.12 (linux kubuntu). It does work with konqueror....
When setting the tabIndex property for an element, Firefox also displays, like IE, a dotted rectangle around the focussed element. With IE you can set hideFocus=true, which does not work with Firefox.
I have a frame set (as per MS FrontPage 2000). It has a contents and a main frame. The contents frame has a menu bar written with with javascript (in the context of a table). In IE6.1 everything works fine as it also does in firefox if I call the contents frame directly (i.e. outside of its frameset). However, if I call my main page (index.html) which invokes the frame set, the contents frame javascript menubar onmouseover function doesn't seem to work though if I reload the contents frame directly it then does. Code:
I know there are some issues trying to use .focus() and .select() within another.eventhandler (for the same object) in firefox. What I don't know is, howto workaround?
I'm trying to create a control which when the mouse button gets pressed on one div an absolute positioned div pops up in place of the cursor. From there the cursor should interact with the dialog before the mouse button is released. In other words one element will catch onmousedown, display the popup, and the popup element will catch onmouseup. This works fine in IE as the popup automatically accepts following events, but my problem is in Firefox.
In Firefox everything behind the popup still receive events even though they can't be seen (hidden by the popup). I have to release the mouse button and then click on the popup again before it accepts the onmouseup event.
I also used a different cursor on the popup to see if Firefox recognized it was there at all. Still the cursor doesn't change until I release themouse button and move the cursor across the popup element.
I've tried focus/blur, timeout delays, hiding the first element (the one which receives onmousedown) but nothing works.
The only thing that works is hiding the entire body and then using setTimeout to show the entire body again 1ms later. Obviously though that is very ugly.
I am having one td and inside td using one control(it may be any control like textbox,combobox) and am using onblur events for td and aswell as the control inside td. when am moving focus from this td to another td the parent onblur event is firing first and then child control(like textbox, combobox) onblur event is firing. The problem is am validating that entire td (what ever the value user updates) in one method. so in this scenario that validate method is calling when i move the focus onto child control. After entering the value in the child control that child control onblur event is firing and am unable to fire the parent control(td) onblur event.
I'm currently making a web application which needs to be fully compatible with iPad. The functions I've implemented so far work perfectly on Firefox, Internet Explorer and other browsers. However, the iPad itself responds a bit different. After a certain action, I want to put focus on a textfield with the help of Javascript. Again, this works perfectly with the normal browser, the iPad browser however seems to be blocking the focus. The reason I'm not posting any code is because it's basically irrelevant. All I do is:
Is there a reason why setting focus to a textbox input, also gives focus to a submit button on the page, to where if you click enter in the text box, the submit button will be clicked.
The default behaviour of focus() method is displaying the cursor at start of the char(In FF focusOffset is 0(zero) and anchorOffset is 0(zero)). I need to display the focus at end of char after calling focus() method.
I think the problem is cause by my lack of understanding of how the browser (firefox 3.6.3) handles focus.A simplified version of my problem is:I've defined the function
function two_focus() { document.getElementById("two").blur();
Is there a way to set the focus on a form field without using focus()? I use ajax to build the form and if I try to set the focus using focus() an error is generate because of the form hasn't been built by ajax. So, it would be nice if I could set the focus() as I built the form.
I have two textboxes, each of them is controlled with a function called checknumber. It controlles if they are empty or a valid number and I connected this function to onBlur event of these textboxes. The problem is that when I wrote an invalid number to the first and click the second one, It gives continuously error messages. How can I solve this problem ?
1. Have the "Total" field update whenever a user changes a value in field 1 or field 2. 2. Perform some validation on those fields 3. Have the onblur and validation NOT fire when the user clicks the Cancel button.
Problem: click in the first field, don't enter a value, then try to press Cancel - the validation is happening, and I don't want it to.
This third point above seems to be the kicker. Anyone know a way I can go from a text field to clicking the "Cancel" button without firing the onBlur event? I normally don't like doing validating on-the-fly like this, but my application has the requirement of updating that Total box dynamically, so I have to perform field-level validation as I go....
I cannot seem to get these two events to work together. If I change them to say onmousedown and onmouseup, they seem to work fine. In this case, the onclick appears to work properly but onblur does not kick in.
For those who have been using Outlook Express, you must be pretty used to the fact that whenever you focus on the preview section, the header for the preview turns from grey to blue, while the text turns from black to white. Code:
I have few textfields and dropdowns in my jsp, form is submitted on clicking an image link.
In case there is an error for instance some text field is left empty, then message is displayed below respective fields ( using spans, inner html). The message is displayed onblur event of the field. So if there was an error then message is displayed, now if the user corrects the error and clicks the link then first the message disaapears ,which is desired ,but he has to click again to submit the form. please suggest a way to handle this. So that user doesn't have to click the link twice to submit the form.I tried having onmousedown and onfocus events on image , but then sometimes the form was submitted twice which gave backend errors.
I am trying to use onBlur to get to pictures to pop up when a user leaves a text box. The only requirement is that a user must enter any value into the text box if they want the pictures to pop up. Unfortunately, I cannot figure out why my code will not work
Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
I am currently working on a website that administers timed online tests, and we are trying to implement some measures to reduce the ability to 'cheat' while the test is running. These include disabling right clicks, and handling keystroke events. Additionally, we would like to end the test if the maximized browser popup window where the test is loaded happens to lose focus during the testing session.
I have implemented some code to call an event handler that will end the test if a window.onblur event is triggered during the session. It is working fine in Firefox, but IE seems to interpret window.onblur events differently. Basically, in Firefox I can click anywhere within the window without a window.onblur event triggering, but in IE if I click outside of the test table or form element etc. into whitespace, for instance, it fires.
In addition to using window.onblur, I have also tried top.onblur, and also putting onblur in the body tag of my html: <body bgcolor="#ffffff" onBlur="lostfocus()"> Again, both work in Firefox, but neither of these alternate methods seem to restrict IE in the appropriate manner.
So my question is this: is there any way to craft this such that IE will play nice and trigger the event ONLY when someone clicks outside of the browser window (on to the start menu, for instance)?
<script language="javascript"> <!-- window.onblur=lostfocus; function lostfocus(e) { // student has attempted to cheat, end test } // --> </script>