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

Validating text content entry (InnovaStudio WYSIWYG Editor)

I've got a form with a texteditor (innova) in it. I'd like to validate using Javascript that some text has been entered. I get a run time error when I try

and read values from the form from within the JS validate routine.

The error is:

A Runtime Error has occurred.
Do you wish to Debug?
Line: 8
Error: 'TheContent.value' is null or not an object

The code is as follows, you need the innova text edit script source, to get the editor to work.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script SRC='/Editor/scripts/innovaeditor.js' TYPE="text/javascript"></script>
<script TYPE="text/javascript">
function ValidateForm(myForm) {
  if (myForm.TheContent.value=="") {
    alert("Please enter text information");
    return false;
  } else {
    return true;
  }
}
</SCRIPT>
<head>
</head>

<body>
<form action="" method="get" onsubmit="return ValidateForm(this)">
  <table width="75%" border="1">
    <tr>
      <td>Text Info</td>
      <td><textarea id="TheContent" name="TheContent" rows=10 cols=48></textarea>
        <script>
            var oEdit1 = new InnovaEditor("oEdit1");
            /***************************************************
                  ENABLE ASSET MANAGER ADD-ON
            ***************************************************/
            oEdit1.cmdAssetManager = "modalDialogShow('/Editor/assetmanager/assetmanager.asp',640,465)"; //Command to open the Asset Manager add-on.
            oEdit1.css="/sitestyles.css"
                oEdit1.arrStyle = [["BODY",true,"","padding:20px;background-color: white;"]];            
            oEdit1.useDIV=false
                oEdit1.features=["ForeColor","|","Numbering","Bullets","|","Indent","Outdent","Line","Paragraph","FontSize","|","Bold","Italic","Underline"];
            oEdit1.width="100%"
                  oEdit1.REPLACE("TheContent");//Specify the id of the textarea here
      </script></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
  </table>

</form>
</body>
</html>
0
mike99c
Asked:
mike99c
1 Solution
 
TimYatesCommented:
Does:

function ValidateForm(myForm) {
  if( document.getElementById( 'TheContent' ).value == '' ) {
    alert( 'Please enter text information' ) ;
    return false ;
  } else {
    return true ;
  }
}

work?
0
 
smaccariCommented:
What Tim wrote should work fine.
You got an error because you referenced an object called "myForm" that does not exists in your code. Your form has no id.
This could work too:

function ValidateForm(myForm) {
  if (document.forms[0].elements["TheContent"].value=="") {
    alert("Please enter text information");
    return false;
  } else {
    return true;
  }
}
0
 
TimYatesCommented:
>> you referenced an object called "myForm" that does not exists in your code

Isn't it passed as a parameter to the function?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Pravin AsarCommented:
I do not see any problem with your Javascript code,  look like a issue with  InnovaEditor(),
I just commented the script line to verify that..

just try following script..

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script SRC='/Editor/scripts/innovaeditor.js' TYPE="text/javascript"></script>
<script TYPE="text/javascript">
function ValidateForm(myForm) {
  if (myForm.TheContent.value=="") {
    alert("Please enter text information");
    return false;
  } else {
    return true;
  }
}
</SCRIPT>
<head>
</head>

<body>
<form action="" method="get" onsubmit="return ValidateForm(this)">
  <table width="75%" border="1">
    <tr>
      <td>Text Info</td>
      <td><textarea id="TheContent" name="TheContent" rows=10 cols=48></textarea>
        <script>
          var oEdit1 = new InnovaEditor("oEdit1");
                 oEdit1.REPLACE("TheContent");//Specify the id of the textarea here
     </script></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
  </table>

</form>
</body>
</html>
0
 
smaccariCommented:
looks i was tired yes ;)
0
 
mike99cAuthor Commented:
Hi Tim

Spot on, works a treat now, thanks for the swift response!

Cheers
Mike
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now