http://qs321.pair.com?node_id=748492

westy032001 has asked for the wisdom of the Perl Monks concerning the following question:

firstly apologies A. this is a perl/javascript question
B. Im a perl newbie (ish)
C Im a javascript novice
D. I'm doing somthing stupid!
what's wrong with the code below ??
the function runs (i see the first alert) but in firebug, the next js section causes a "checkbox_form is not defined" and i dont see the alert when no check box's are ticked.
#!/usr/bin/perl use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); $JSCRIPT=<<EOF; function validate() { alert(" yes it ran"); var checkbox_choices = 0; // Loop from zero to the one minus the number of checkbox button selec +tions for (counter = 0; counter < checkbox_form.checkbox.length; counter++) { // If a checkbox has been selected it will return true // (If not it will return false) if (checkbox_form.checkbox[counter].checked) { checkbox_choices = checkbox_choices + 1; } } if (checkbox_choices < 1 ) { // If there were less then selections made display an alert box alert("Please make a selection"); return (false); } }; EOF ; print header; print start_html(-script=>$JSCRIPT); print h1("this is the main"); print start_form(-action=>"/cgi-bin/mockup/main2.cgi", -target=>"mainframe", -name=>"checkbox_form", -onSubmit=>"return validate()"), checkbox_group(-name=>"checkbox", -values=>['red','green','blue']), p(),submit; print end_form; print end_html;

Replies are listed 'Best First'.
Re: newbie perl cgi.pm/javascript problem
by bellaire (Hermit) on Mar 05, 2009 at 11:55 UTC
    This seems to be strictly a JavaScript question, and it looks like you need to invoke document.checkbox_form instead of just checkbox_form.