• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 327
  • Last Modified:

Javascript Error form validation

Hi

I am having a very strange problem with a form validation script I'm using on the following page, it reports that value is undefined - which I thought was due to an incorrectly named element but it all appears to be ok.

http://app.kambee.com/?i=100-39

Error: value is not defined
LINE 14

The error is when the form is submitted - Another set of eyes would be greatly appreciated!

0
logicjb
Asked:
logicjb
  • 6
  • 5
  • 2
  • +1
1 Solution
 
BadotzCommented:
Hard to see the problem from only your question...how about some code?
0
 
logicjbAuthor Commented:
I gave a link to the page above, is it stripped from the question?
0
 
BadotzCommented:
If the problem is in an ASP page, we will not be able to see that from your website :-( You will have to post it here.
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
logicjbAuthor Commented:
It's not in an ASP page, it's in the HTML source which you can view from the URL above? This is a javascript related question - not ASP.
0
 
b0lsc0ttIT ManagerCommented:
logicjb,

The problem is checking for value with the radio buttons.  The radios actually end up being a collection.  You need to loop them, see which is checked, and then get the value of the checked button.  I can help with the specifics if you need it.

Let me know if you have any questions or need more information.

b0lsc0tt
0
 
logicjbAuthor Commented:
Thanks b0lsc0tt, that's a great help.

How would one loop the values?  - apologies if that's a pain to explain
0
 
_Maddog_Commented:
Hi,

You're trying to check the "value" of two radio controls.
thisform.q70 is an array of two radio controls, it does not have a value attribute.

Look into radio controls validation, here's a sample:
http://www.codeave.com/javascript/code.asp?u_log=7049

validate_form, calls validate_required, with thisform.q70 as a parameter, it fails while checking this.q70.value, because it is an array of two radio controls.

- Maddog
0
 
b0lsc0ttIT ManagerCommented:
Let me work on some code.  It is easier to show than explain.  In the meantime to test what I mean add an alert in the first function like ...

function validate_required(field,alerttxt)
{
alert(field[0].value);

If the Yes is checked in the first question you will see the value.  Basically the loop will make that work for all of the radios.

bol
0
 
logicjbAuthor Commented:
Thanks bol, the problem does indeed go away if I remove validation for radio - and checkboxes too though.
0
 
b0lsc0ttIT ManagerCommented:
Try changing your first function too ...

(see snippet)

It is a little hard for me to test this but that is close.  I have some alerts and you can remove those if needed.

Let me know the results.

bol
function validate_required(field,alerttxt) {
      with (field) {
            alert(length);
            if (length > 1) {
                  for (var item in length) {
                        if (item.checked) {
                              alert(item.name + '-' + item.value);
                              while (item) {
                                    if (value==null||value=="")
                                      {alert(alerttxt);return false}
                                    else {return true}
                              }
                        }
                  }
            } else {
                  alert(name + '-' + value)
                  if (value==null||value=="")
                    {alert(alerttxt);return false}
                  else {return true}
            }
      }
}

Open in new window

0
 
b0lsc0ttIT ManagerCommented:
One possible issue remaining.  Do you want to require a radio or check box to be checked?  The current script won't but I can add it.

bol
0
 
b0lsc0ttIT ManagerCommented:
I had to get rid of some of the with()'s you were using.  The code should now alert if a set of radios or checkboxes aren't checked.  The focus won't work on those fields though and it seems to still submit when it shouldn't but that may just be my test page.

The revised function is below.

bol
function validate_required(field,alerttxt) {
	if (field.type == 'text') {
		with (field) {
			if (value==null||value=="")
			  {alert(alerttxt);return false}
			else {return true}
		}
	} else {
		var chked = false;
		for (var i=0; i< field.length; i++) {
			if (field[i].checked) {
				chked = true;
				break;
			}
		}
		if (!chked) {alert(alerttxt);return false}
	}
}

Open in new window

0
 
logicjbAuthor Commented:
Superb, thank you.
0
 
b0lsc0ttIT ManagerCommented:
I'm glad that did it.  Thanks for the fun question, the grade, and the points.  See you around. :)

bol
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 6
  • 5
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now