Как добавить / проверить значения в массиве с помощью JavaScript - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть этот HTML-код test.html :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jquery.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">
  $(document).ready(function() {
    var course_data;     
    $.get('exerc.xml', function(data) { 
    course_data = data;               
    var that = $('#courses'); 
    $('course', course_data).each(function() {
    $('<option>').text($(this).attr('title')).appendTo(that);
    });
  }, 'xml'); 

 $('#courses').change(function() { 
    var val = $(this).val(); 
    var that = $('#times').empty(); 
    $('course', course_data).filter(function() { 
      return val == $(this).attr('title'); 
    })
    .find("lesson").each(function() { 
      $("#lesson").val($(this).text());   
    });
 });
 });
 </script>

<script type="text/javascript">
function keyPressed(event, input) {
   if (event.keyCode == 8) {
               // Allow backspace
   return true;
  }
              // Detect character code: event.which on Firefox, event.keyCode on IE
   var char = event.which ? event.which : event.keyCode;
             // Convert to string
   char = String.fromCharCode(char);
   var exerc = new Array();
   exerc = "1234 1234 1234";
    // Compare to character in match string and return result
   return (exerc.charAt(input.value.length) == char);
   }
</script>   
</head>

<body>
 <form method="post" action="">
 <input type="text" size="90" id="lesson" />
 </form>
 <form  id="form2" name="form2" method="post" action="">
 <input size="90" type="text" class="textarea" onkeypress="return keyPressed(event, this);" />
 </form>

 <form name="form1">
 <p>exercices
   <select style="width:100px" id='courses'>
   <option selected="selected">choose...</option>
   </select>
 </form> 
 </body>
 </html>

И это мой файл XML exerc.xml :

 <?xml version="1.0" encoding="utf-8"?>
 <courses>
    <course title="exercise 1">
        <lesson>1234 1234 1234</lesson>
    </course>
    <course title="exercise 2">
        <lesson>5678 5678 5678</lesson>
    </course>
    <course title="exercise 3">
        <lesson>9012 9012 9012</lesson>
    </course>
 </courses>

Ну, есть два поля ввода выше в первом коде.При первом вводе введите данные из файла xml (метод парсера).Это зависит от выбора из выпадающего меню.Во втором входе я использую функцию (keyPressed), которая позволяет мне вводить те же данные, которые изображены на первом входе, но по порядку.Это очень хорошо с первым упражнением.Проблема в том, что я хочу работать с большим количеством упражнений.Я добавляю массив с большим количеством упражнений, таких как:

 var exerc = new Array();
   exerc[0]= "1234 1234 1234";
   exerc[1] = "5678 5678 5678";
   exerc[2] = "9012 9012 9012"; 

Я изменяю первую функцию keyPressed, но она не работает.Бейб, это совершенно неправильно:

 function keyPressed(event, input) {
    if (event.keyCode == 8) {
    return true;
    }
    var char = event.which ? event.which : event.keyCode;
    char = String.fromCharCode(char);
     var exerc = new Array();
       exerc[0]= "1234 1234 1234";
       exerc[1] = "5678 5678 5678";
       exerc[2] = "9012 9012 9012";
      for (i=0;i<exerc.length;i++){
      document.getElementById("courses").selectedIndex;
      }
     return (exers.charAt(input.value.length) == char);
   }

Я использую это упражнение как игру.Я могу добавить или удалить упражнения из XML-файла, и я изучаю предоставление ключей.Может быть, это глупо для многих здесь, но мне было интересно.Итак, я складываю здесь.Любое предложение, как это исправить?Заранее спасибо.

1 Ответ

1 голос
/ 20 февраля 2012

это решение, если у кого-то такая же проблема!

var exerc = ["1234 1234 1234","5678 5678 5678","9012 9012 9012"]; 
for (i=0;i<exerc.length;i++){

var option=document.getElementById("courses").selectedIndex;
}

return (exerc[option - 1].charAt(input.value.length) == char);
...