Function Returning Wrong Value / Why Is So?
Feb 18, 2009Why is my function returning the wrong value??
View 1 RepliesWhy is my function returning the wrong value??
View 1 RepliesI am relatively new to js, but I did think I was starting to get the
hang of it. Then this happened...
I have a form with an onsubmit event handler:
<form id="uploadForm" method="post" action="..."
onSubmit="checkDates()">
The event handler does some minor validation, then returns true or
false:
function checkDates(y, m, d) {
if (endDate.getTime() >= startDate.getTime())
return true;
alert("Start date must precede end date");
return false;
}
(The arguments to the function are used when it is called elsewhere,
not as onsubmit.)
I also have a library class which needs to process the form submit, so
it hooks onsubmit like this:
MyClass.setOnSubmit = function(listId) {
var list = document.getElementById(listId);
var form = list.form;
var f = form.onsubmit;
if (typeof f == "function") {
form.oldOnSubmit = f;
form.onsubmit = function(){
var ok = this.oldOnSubmit();
if (ok)
return MyClass.onsubmit(listId);
else
return false;
};
}
else
form.onsubmit = function(){MyClass.onsubmit(listId);};
}
My problem is that the value returned from oldOnSubmit and stored in ok
appears as 'void'. This happens in IE 6 and in FireFox 1.07. Can anyone
explain what's happening?
I have tried to write a wait function but it seems like it will not brake the while loop. I tried two different solutions. Can anyone tell me what I am doing wrong, and come with another suggestion? If I call the function like this: wait(500); it should wait 500ms right?
function wait(time) {
while(1){
setTimeout("break;",time);
}
}
function wait(time) {
var flag=0;
while(flag=0){
setTimeout("flag=1;",time);
}
}
I am trying to write a function that is being invoked when some one clicks the submit button on the form.<form name="sectionA" action="optionpage.cfm" onSubmit="return abc()">I have three tables with initials textboxes. I want to check if they are empty and return false(stay on the same page), else go to action page.Here is what I am doing, I Created three functions tableA(), tableB(),tableC() call them from function abc(). These functions tableA(), tableB(), tableC() return false if one of the field is empty and stop furthur processing and remain in the same page. If none(errors), then go the other page.i.e if table B has empty fields, page should stop furthur processing and remain in the same page.Here is how I am doing it Can somebody please point out what I am doing wrong here.Even when there is empty field, the code moves me to the actionPage.
View 2 Replies View RelatedI'm working on dynamic list with jQuery. I've appended hundreds of <li> elements with for loop to make very long list. When user scroll down again, remove older ones and append new ones at last of the list. I used$('li:lt(50)').remove() to remove first 5 elements from the list. At first, it works. But, for the second time, it always delete half of '50'. When I enter 100, only 50 elements deleted. How can it be? Could you check the ':lt(n)' selector and remove function? My HTML is very simple. only <UL> <LI> tags in the body. Tested on latest Chrome(ver.13.0.782), jQuery 1.6.2.
View 1 Replies View RelatedI am writing a Javascript to sort and write out some stuff. PHP is not an option so I need to get this script working.
The problem arises when I want to make a link to the next page. (i.e. Like the link in Google for the next 10 results)
I have <a href=# onclick=FUNCTION(VALUES)> written dynamically by the script.
It is written onto the document correctly, but the problem is, when the link is clicked, some seemingly random values are passed to the function.
When you run the code, the first alert will show all the values that a were passed to the function. The second and third will show what was written to the document.
If you try clicking the next button after the code loads, the values that result will be unusual.
<script>
I am doing a Validation for Form "Text input". If the user leaves the input empty, a function is starting to run. If the field is bigger than 1 - so it doesn't get into the function.
The problem is: The first time, the user left the input empty, function ran, and I got the alert - that's OK. Second time, The user added 10 in the AGE input - And again he gets the Alert - But he should not.
Note: Age input value, returns from a different function (calc) to a var called: result.
[Code]...
The following code is supposed to return a variable containing text, currently the code posts the data but returns an "undefined" variable. Can someone tell me what's wrong? code...
View 9 Replies View RelatedI would like to document.write the status value using the return function but I can't get it to work.
The output should be Markers On or Markers Off.
<html>
<head>
<script type="text/javascript">
[Code].....
So for whatever reason the convertToArray function in the following code returns false if the argument is more than 1 character long. If it's 1 character long it just returns the character as an array with only one value.What I'm trying to do is take a string of numbers, plus signs, and minus signs and convert it to an array.
View 5 Replies View RelatedI have a little problem in one of my functions, I would like to pass in a form field name and set the value to something that is passed in. here is my code:
function pickitem(id,type){
opener.document.getElementById("form").type.value = id;
window.close()
}
so i'm passing in an id and a formfield e.g. txtName The problem is with the type.value - i haven't touched javascript for ages so i'm really rusty!!
I'm attempting to simplify my javascript code when it comes to ajax, but afterwords it only prints 'undefined' to the screen rather than what I want it to print.
I want to be able to put something like this on my main page onclick="document.getElementById('output').innerHTML = print_output();" where print_output() is the ajax function. This way I don't have to use a function to assign values directly to innerHTML and I don't have to muck about with a js file whenever I want to change my page layout.
To do this, I created a recursive function:
function print_output(return_value) {
if a value has been passed to the function, simply return it
if(return_value || return_value == 0) {
return return_value;
}
[Code].....
but like I said, it prints 'undefined' out to the screen. Why isn't this printing the contents that it receives from 'index.php' like it's supposed to?
The code is below but basically I have two global variables, then I have a function and then a function within that, I am simply trying to update these global variables from within the nested function so i can then go on and use them in another function! this sounds like quite a straight forward request to me, but maybe it can not be done? When I do an alert on the variables (after I have apparently updated their values) I get 'undefined'!
Code JavaScript:
var resultLatB;
var resultLngB;
function getLatLngFromTown(town, callbackFunction) {
var localSearchB = new GlocalSearch();
localSearchB.setSearchCompleteCallback(null,
function() {
if (localSearchB.results[0]){
resultLatB = localSearchB.results[0].lat;
resultLngB = localSearchB.results[0].lng;
pointA = resultLatB;
pointB = resultLngB;
//THIS WORKS
alert("Test 1 = " + resultLatB);
alert("Test 1 = " + resultLngB);
}});
localSearchB.execute(town + ", UK");
//DOESN'T WORK... SHOULD IT?
alert("Test 2 = " + resultLatB);
alert("Test 2 = " + resultLngB);
}
getLatLngFromTown("oxfordshire",null);
//I WANT THIS TO WORK!
alert("Test 3 = " + resultLatB);
alert("Test 3 = " + resultLngB);
Here is a clip of code from a script project im working on. Now my document.getElementsByTagName is returning a "undefined" value.
<a href="[URL]" style="text-decoration: none; color: #EDDBAF; font-size: 16px;">
<center style="margin-left: 10px; margin-right: 10px;">
<font style="color: #EDDBAF; font-size: 16px;" id="title"></font>
</center></a>
<li id="name"><a http="[URL]" style="color: blue;">John Doe</a></li>
<script type="text/javascript">
var pname = document.getElementById('name').getElementsByTagName('a');
Now if I remove the ".getElementsByTagName('a')" it will actually work, but it also includes the <a> tag thats within the <li> tag, which I don't want.
document.getElementById('title').innerHTML=pname.innerHTML;
</script>
The following code works fine in FF and Chrome for getting a radio selections value but not IE8.
$('input[name="search[gender]"]').change(function()
{
var check = $('input[name="search[gender]"]:checked').val();
Inputs are below:
<input type="radio" name="search[gender]" value="1" class="v_middle" />Male
<input type="radio" name="search[gender]" value="2" class="v_middle" />Female
<input type="radio" name="search[gender]" value="3" class="v_middle" />Couple
<input type="radio" name="search[gender]" value="4" class="v_middle" />tv
<input type="radio" name="search[gender]" value="" checked="checked" class="v_middle" />All
The first time you click a radio button in IE8, no value is returned at all (tested with document.write of the 'check' value), with an error "'null' is null or not an object". The second (and rest of the times) you click any of the checkboxes the wrong value is returned, it returns the value of the currently checked button (which we checked a moment ago) rather than the one we have checked the second time. Does Internet Explorer have issues with this onchange function method? Or is something wrong with my code?
I have several functions with code along the lines of:
var xmlDoc = requestXML("ajax.asp?SP=SelectRelatedTags&tag=" +
array[i]);
The requestXML() function includes the code:
var xmlDoc = null;
http_request.onreadystatechange = function() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
xmlDoc = http_request.responseXML;
} else {
alert('There was a problem with the request.' +
http_request.status);
}}};
http_request.open('GET', url, true);
http_request.send(null);
return xmlDoc;
However, the last line (the return) executes before the readyState
reaches 4. How do I return the xmlDoc to the functions only once the
xmlDoc has been assigned? I tried putting the return statement in a
while loop with the condition that the readyState must = 4 - this
worked, but makes the browser popup a message saying the script is
slowing down the system.
I know this is a simple question with a simple answer, but I can't seem to wrap my brain around it.Sorry for the infantile nature of this post. Anyhow, I am making an AJAX call via JQuery and need the function to return a value from a calling function, like so:
[Code]...
I have a weird bug that's occuring in pretty much all the browsers. If I close the tab, and then hit Ctrl -> Shift -> T to bring it back the width() method returns 0 on an appended image instead of what the image actually is. Hitting refresh on the tab removes this bug and everything works fine. I will also say that trying
.css('width') and
document.getElementById('divShadowLeft');
Both also return 0 for this bug.
I can't show all the code for security reasons, but I'll just outright ask.. what are the reasons that width() would return 0 on an image? I've checked to make sure that it was visible (both display and visibility properties), and I checked the length of the property to ensure it was there. I just can't figure out why width() is returning 0.
Here's a code snippet:
$(this).append('<img src="'+defaults["imagePath"]+defaults["imageLeft"]+'" alt="" id="'+defaults["imageClass"]+'Left" class="'+defaults["imageClass"]+'" style="" />');
alert('Length: '+$('#divShadowLeft').length+' | Width: '+$('#divShadowLeft').width()+' | Visible: '+$('#divShadowLeft').css('visibility'));
I have a setup where I have a function, calling a function, calling a function. All functions do what they're supposed to do, but they don't return to the first function when all is done, so it doesn't display an alert that it's supposed to.
For those that don't want to look through tons of code and think they might know what I'm doing wrong, here's the "coles notes" version. code...
I am wondering how can I return the variable senttext from the function below?I have declared it and when I alert(senttext) below it appears as I want it but I need to return it and pass it to another function. When I change alert() to return the variable becomes undefined?
var senttext;
function getData()
{
if (window.XMLHttpRequest) {
[code]...
I have a function where in I call another function that assigns a value to a var. code...
For some reason my code below is returning 'undefined'. But when I place an alert(); before the 'return' it shows the correct value. However when I place an alert(); to show the var that is set to what the function returns it says 'undefined'.
Firebug throws no errors. I am using a little bit of jQuery.
I have this code:
HTML Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
[code]....
The practical scenario is I have several functions attached to the jQuery ajaxSucess event. Each function needs to execute once during initial load and after when the JQuery ajaxSuccess event is fired. So I am just looking to see if I can eliminate a a few lines of code and learn something new in the process, that is really all.
I have a very simple PHP script that returns JSON like this:
{"question":"What day is it?"}
And I'm trying to call it from another page using Ajax. My code looks like this:
var url = "/test.php";
$.get(url,
function(data){
$.each(data, function(i, value) {
alert(value);
}, "json"
);
});
When I run it I get each character printed out one at a time in a separate alert. And then when I used this line of code:
alert(typeof data);
It tells me that 'data' is a string. Shouldn't it be a JSON object?
The event which in the following keydown function code is not returning the correct key codes. I have checked this in Chrome using the developer tools and the console.log(e.which) statement in my code.
var KEY = {
UP: 38,
DOWN: 40,
W: 87,
[Code]....
I've written the following small feature test.
[Code].....
I want to remove 'div' before returning the function. Testing in IE something like div.parentNode.removeChild(div); will fail. If I look in the dom 'div's parentNode is null, so that explains that. It needs to be appended to something first I guess.
I am writing a Javascript to sort and write out some stuff. PHP is not an option so I need to get this script working.
The problem arises when I want to make a link to the next page. (i.e. Like the link in google for the next 10 results)
I have <a href=# onclick=FUNCTION(VALUES)> written dynamically by the script.
It is written onto the document correctly, but the problem is, when the link is clicked, some seemingly random values are passed to the function.
I also have an invalid character error that arises when I pass the "whereVARquoted" variable into my function (code 2) which disappears when the variable is removed (code 1).
My code is below:
Code 1:
<script>
Code 2:
<script>