Re: Re: accessing dynamic generated dom element with javascript in IE

"Habib, Fatma" <[email protected]>
Newsgroups gmane.comp.web.dom.wdf
Message-ID <[email protected]>
it didn't work. it  compares q with  myform.elements["Q_" + i] and q is not defined.
  
  in the if, I assign a value to q then test if it is true . 
  The problem is that I have a remove question button, then not all questions from 1 to counter are defined 
  here are the important parts of the code
  Thanks,
  F. Habib
  
  code:
  javascript:
  
  
  var counter = 0;
  
  function moreFields()
  {
      counter++;
      var newFields = document.getElementById('readroot').cloneNode(true);
      newFields.id = '';
      newFields.style.display = 'block';
      var newField = newFields.childNodes;
      for (var i=0;i<newField.length;i++)
      {
          var theName = newField[i].name
          if (theName)
  
  
              newField[i].name = theName + counter;
  
      }
      var insertHere = document.getElementById('writeroot');
      insertHere.parentNode.insertBefore(newFields,insertHere);
  }
  
   function valid()
  {
  
  var str="";
  
  
  for (i=1 ; i<= counter ; i++)
  {    
  
  
      if ((q = myform.elements["Q_" + i]))
      {
  
          if ( q.value == "")
          {
              str = str + 'enter a question plz';
          }
          c1 = myform.elements["C1_" + i];
          c2 = myform.elements["C2_" + i];
          c3 = myform.elements["C3_" + i];
          c4 = myform.elements["C4_" + i];
          c5 = myform.elements["C5_" + i];
          c6 = myform.elements["C6_" + i];
          a = myform.elements["A_" + i];
          m = myform.elements["M_" + i];
          
          cc = 0;
          
          if (c1.value!="") 
          {
              cc ++;
          }
  
          if (c2.value !="")
          {    
              cc ++;
          }
          if (c3.value!="") 
          {
              cc ++;
          }
  
          if (c4.value !="")
          {    
              cc ++;
          }
          if (c5.value!="") 
          {
              cc ++;
          }
  
          if (c6.value !="")
          {    
              cc ++;
          }
          if (cc<=1)
          {
              str = str + ' u must fill at least 2 choices';
          }
  
          if (a.value =="")
          {
              str = str + ' u must select an answer';
          }
      
          if (a.value!="")
          {
              x=a.value
              
              ca = myform.elements["C" + x + "_" + i];
              if (ca.value=="")
              {
                  str = str + ' answer must not be null';
              }
              
          }
          if (m.value <= 0)
          {
              str = str + ' mark must be >0';
          }
                  
          
      }
  
  }
  
  if (str!="")
  {
  
      alert (str);
      return false;
      
  }
  else
  {
      document.myform.counter.value = counter;
      return true;    
  
  }
  }
  
  html
  
  <div id="readroot" style="display: none">
      <p class="hr"> </p>
  
      <input type="button" value="Remove Question" style="font-size: 10px"
          onClick="
              this.parentNode.parentNode.removeChild
  
  (this.parentNode);
          "><br><br>
  
      <textarea name="Q_" rows=3 cols=40>Enter Question</textarea>
  <br/><br/>
      <input type =text width=35 name="C1_" value="choice1"  />
  <br/><br/>
  <input type =text width=35 name="C2_" value="choice2"  />
  
  <br/><br/>
  <input type =text width=35 name="C3_" value="choice3"  />
  <br/><br/>
  <input type =text width=35 name="C4_" value="choice4"  />
  
  <br/><br/>
  <input type =text width=35 name="C5_" value="choice5"  />
  
  <br/><br/>
  <input type =text width=35 name="C6_" value="choice6"  />
  <br/><br/>
  
  
      <select name="A_">
          <option value=""></option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
      </select> &nbsp; &nbsp; 
  
      <input type = "text" size="2" name="M_" />
  <br><br>
  
      </div>
  
  <form action= someaction.php    onsubmit="return valid()" method=post>
  
  <span id="writeroot"></span>
  <input type="button" value="Add Question" onClick="moreFields()">
  <input type=submit>
  </form>
  
  
"John M. Hann" <[email protected]> wrote:          Hi Sleeping Beauty,
  
  Change
  
  if ((q = myform.elements["Q_" + i]))
  
  to
  
  if ((q == myform.elements["Q_" + i]))
  
  Note: double-equal ("==")
  
  -- John
  
  http://e-numera.com/ 
  
  --- In [email protected], "Sleeping Beauty" <ms_f_habib@y...> wrote:
  >
  > I a creating a site for entering tests
  > the instuctor can add questions whenever he needs and the question and
  > answer fields are appended with the questions counter
  > 
  > I've created a javascript function to validate the questions
  > the problem is that it doesn't work in  IE it worked in firefox
  > 
  > this is how I access the fields
  > for (i=1 ; i<= counter ; i++)
  > {      
  >       if ((q = myform.elements["Q_" + i]))
  >       {
  > 
  >             if ( q.value == "")
  >             {
>                     str = str + 'enter a question plz'
  >                 }
  >       }      
  >               
  > }
  > in IE  q is considered undefined!
  > 
  > is there any other option, coz I need the code to work in IE
  > thank you
  > aurora
  >
  
  
  
  [Non-text portions of this message have been removed]
  
            

    Unsubscribe
  [email protected]
  
  List info
  http://www.quirksmode.org/dom/list.html  

                      

          SPONSORED LINKS    
                                                        Dom perignon                                          Dom pedro lisboa                                          Javascript dropdown menu                                                                          Javascript                                          Dom henrique hotel                                          Dom pedro hotel                                                                             
        
---------------------------------
    YAHOO! GROUPS LINKS  
  
      
    Visit your group "wdf-dom" on the web.
     
    To unsubscribe from this group, send an email to:
 [email protected]
     
    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.  
  
      
---------------------------------
  
  
          



<html>
<a href="Get'>http://www.spreadfirefox.com/?q=affiliates&id=97679&t=1">Get Firefox!</a>
 
<a href="http://www.spreadfirefox.com/?q=affiliates&id=97679&t=61"><img border="0" alt="Get Firefox!" title="Get Firefox!" src="http://sfx-images.mozilla.org/affiliates/Buttons/110x32/trust.gif"/></a>
 
</html>








			
---------------------------------
Yahoo! Shopping
 Find Great Deals on Holiday Gifts at Yahoo! Shopping 

[Non-text portions of this message have been removed]



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Get fast access to your favorite Yahoo! Groups. Make Yahoo! your home page
http://us.click.yahoo.com/dpRU5A/wUILAA/yQLSAA/9rHolB/TM
--------------------------------------------------------------------~-> 

Unsubscribe
[email protected]

List info
http://www.quirksmode.org/dom/list.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/wdf-dom/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.