Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript在数组中添加/检查值_Javascript_Xml_Arrays_Drop Down Menu_Keypress - Fatal编程技术网

如何使用javascript在数组中添加/检查值

如何使用javascript在数组中添加/检查值,javascript,xml,arrays,drop-down-menu,keypress,Javascript,Xml,Arrays,Drop Down Menu,Keypress,我有以下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=

我有以下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 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>
我更改了第一个按下的功能键,但它不工作。也许这是完全错误的:

 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);
   }
按下功能键(事件,输入){ 如果(event.keyCode==8){ 返回true; } var char=event.which?event.which:event.keyCode; char=String.fromCharCode(char); var exerc=新数组(); exerc[0]=“1234 1234 1234”; exerc[1]=“5678 5678 5678”; exerc[2]=“9012 9012 9012”;
对于(i=0;i这是解决方案,如果有人有相同的问题

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);
var exerc=[“1234 1234 1234”,“5678 5678 5678”,“9012 9012 9012”];

对于(i=0;我只是我的意见,但我会将函数调用从标记中去掉并使用jquery:
$('.textarea').keypress(函数(事件){keyPressed(事件,this);})
那么,这是另一个解决方案吗?它看起来更复杂……不是另一个解决方案,只是对代码的改进-我相信将所有代码移出标记,包括事件管理-将我注意到的事件管理器放在JavaScript代码库中,它会重新替换标记中的事件管理器。
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);