2014-11-04 3 views
1

У меня проблема с моей домашней работой ... Я не знаю, что не так с моим кодом .. моя домашняя работа - это создание простой математики обучения с выбором уровня ... Я использую выпадающее меню для выбирая уровень и арифметические операции ... теперь моя проблема в том, что когда я нажимаю кнопку, тогда она перейдет к функции start(), а затем сохранит уровень и операцию, которые были выбраны в 2 переменные, которые выбирают levelselect и operationselect ... и теперь я тестирую он для предупреждения (levelselect); ... предположил, что он покажет окно предупреждения с тем уровнем, который я выбираю ... но он не может работать ... благодаря просмотру сообщения и желанию помочь мне ... спасибо ...> <Предупреждение JavaScript

<script language="javascript"> 
 
var levelselect; 
 
var operationselect; 
 
var num1; 
 
var num2; 
 

 

 
function start() 
 
{ 
 
       levelselect = form.element["form1"]["level"].value; 
 
       operationselect = form.element["form1"]["operation"].value; 
 
    
 
alert(levelselect); 
 
    
 
} 
 

 
</script>
<html> 
 
<head> 
 
<title>Untitled Document</title> 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
 
</head> 
 

 

 
<body> 
 
<form id="form1" name="form1" method="post" action=""> 
 
<table align="center"> 
 
<tr align="center"><td><label>Choose your Level :</label> 
 
<select id="level" > 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 
<option value="3">3</option> 
 
<option value="4">4</option> 
 
</select> 
 
</td> 
 
</tr> 
 
<tr align="center"><br><br><br><td><label>Choose your arithmetic operations :</label> 
 
<select id="operation" > 
 
<option value="add">Addition</option> 
 
<option value="sub">Subtraction</option> 
 
<option value="div">Division</option> 
 
<option value="mul">Multiplication</option> 
 
</select> 
 
</td> 
 
</tr> 
 
    
 
<tr> 
 
<td align="center"><input type="button" onclick="start()" value="Generate question"/></td> 
 
</tr> 
 
    
 

 
    
 
</table> 
 
</form> 
 
    
 
</body> 
 
</html>

+3

Посмотрите в консоли JavaScript браузера. Посмотрите сообщение об ошибке, которое вы получите. – Quentin

ответ

0

, если вы хотите использовать эту форму как переменная JavaScript, вы должны изменить тип входа и удалите вызов функции:

<input type="submit" value="Generate question" /> 

затем изменить:

<form id="form1" name="form1" method="post" action="" onsubmit="start(this);return false;"> 

В этом случае функция будет вызываться по щелчку ввода, но мы проходим это так:

function start(myForm) { 
    levelselect = myForm["level"]value; 
    operationselect = myForm["operation"]value; 

    alert(levelselect); 

} 

в функции «старт» мы имеем переменную: Myform, которые могут быть используется для выбора двух выбрать значения

http://jsfiddle.net/L64d5nLe/1/

0

Удалить тег сценария с вашего демо и получить элемент, используя идентификатор, решить вашу проблему

var levelselect; 
 
var operationselect; 
 
var num1; 
 
var num2; 
 

 
function start() 
 
{ 
 
    levelselect = document.getElementById("level").value; 
 
    operationselect = document.getElementById("operation").value; 
 
    alert(levelselect); 
 
    alert(operationselect) 
 
}
<html> 
 
<head> 
 
<title>Untitled Document</title> 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
 
</head> 
 

 

 
<body> 
 
<form id="form1" name="form1" method="post" action=""> 
 
<table align="center"> 
 
<tr align="center"><td><label>Choose your Level :</label> 
 
<select id="level" > 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 
<option value="3">3</option> 
 
<option value="4">4</option> 
 
</select> 
 
</td> 
 
</tr> 
 
<tr align="center"><br><br><br><td><label>Choose your arithmetic operations :</label> 
 
<select id="operation" > 
 
<option value="add">Addition</option> 
 
<option value="sub">Subtraction</option> 
 
<option value="div">Division</option> 
 
<option value="mul">Multiplication</option> 
 
</select> 
 
</td> 
 
</tr> 
 
    
 
<tr> 
 
<td align="center"><input type="button" onclick="start()" value="Generate question"/></td> 
 
</tr> 
 
    
 

 
    
 
</table> 
 
</form> 
 
    
 
</body> 
 
</html>

0

Вы можете получить доступ к элементам формы, как это.

levelselect = document.forms["form1"]["level"].value 
0

Проверьте это, вы можете получить выберите значение, используя идентификатор, как:

document.getElementById("operation").value; 

это будет возвращать выбранное значение для вас. вам не нужно проверять его с помощью имени формы. Я также меняю тип = кнопка на кнопку тега.

var levelselect; 
 
var operationselect; 
 

 

 

 
function start() 
 
{ 
 
       levelselect = document.getElementById("level").value; 
 
       operationselect = document.getElementById("operation").value; 
 
    
 
       alert(levelselect+" ## "+operationselect); 
 
    
 
}
<html> 
 
<head> 
 
<title>Untitled Document</title> 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
 
</head> 
 

 

 
<body> 
 
<form id="form1" name="form1" method="post" action=""> 
 
<table align="center"> 
 
<tr align="center"><td><label>Choose your Level :</label> 
 
<select id="level" > 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 
</select> 
 
</td> 
 
</tr> 
 
<tr align="center"><br><br><br><td><label>Choose your arithmetic operations :</label> 
 
<select id="operation" > 
 
<option value="add">Addition</option> 
 
<option value="sub">Subtraction</option> 
 
</select> 
 
</td> 
 
</tr> 
 
<tr> 
 
<td align="center"><button onclick="start()" >Generate question</button></td> 
 
</tr> 
 
</table> 
 
</form> 
 
</body> 
 
</html>

0

Пожалуйста, внести эти изменения в вашей функции запуска

  levelselect = document.getElementById('level').value; 
      operationselect = document.getElementById('operation').value; 
0

Я никогда не видел этого form.element в любом месте.

Вы должны использовать документ.getElementById (идентификатор), чтобы взять элемент страницы, чтобы получить значение:

function start() 
{  
    var a = document.getElementById('level'); 
    var strLevel = a.options[a.selectedIndex].value; 

    var b = document.getElementById('level'); 
    var strOperation = b.options[b.selectedIndex].value; 

    alert(strLevel); 
} 

В основном вы:

  • Выбор "выберите" с помощью своего "ID"
  • Вы смотрите в параметры выбранного одного
  • Вы получаете значение выбранного одного

Я сделал jsfiddle для вас с помощью этого сценария:

http://jsfiddle.net/0x4ex8tk/6/

Смежные вопросы