2012-02-25 2 views
0

У меня есть страница, на которой пользователь может нажимать кнопки «Влево» + «Вправо», чтобы прокручивать числа между 1-10.Ошибка прокрутки переменной Javascript

Значение по умолчанию - 0, которое отображается пустым.

В нижней части расположены две кнопки, которые позволяют пользователю «Очистить» номер - переименовать его в 0. Или «Перемешать», выбрав случайное число.

После этого пользователь может отправить эти номера в базу данных.

Моя проблема заключается в том, что если пользователь должен был прокрутить до 5 (например), нажмите «перетасовать», а затем отправьте, он отправит «5» вместо случайного числа, которое оно должно было сгенерировать.

Также, если пользователь только нажимает «перетасовать», то отправьте его, он будет вводить «0».

Проблема с кнопкой «Очистить» аналогична, если пользователь прокручивает до 5, а затем сбрасывает сброс, переменная будет оставаться на «5» при отправке.

Я, вероятно, слишком много компрометирую, и мне жаль, если я, но это меня раздражает.

Thankyou ~

+0

Вы должны показать нам некоторый код. Невозможно помочь вам в противном случае. – Hogan

+0

Можете ли вы разместить свой код, чтобы можно было увидеть, что с ним не так? –

+0

Исправьте меня, если я ошибаюсь: Есть 3 кнопки, отправить, сбросить и перетасовать. Они находятся под текстовым полем, которое первоначально содержит число 0. Когда они нажимают влево или вправо, число увеличивается/уменьшается. Когда они нажимают кнопку сброса, число снова становится 0. Когда они нажимают на тасование, число становится случайным числом. Когда они нажимают кнопку отправки, номер отправляется в БД. Все ли это правильно? – rcplusplus

ответ

0

Я не совсем уверен, что проблема не глядя на свой код. Я получаю ощущение, что это что-то вроде этого:

Javascript

var opNumb = 0; //default number 

left = function(){if (opNumb>0) opNumb--; 
         updateNumb(opNumb);} 
right = function(){if (opNumb<10) opNumb++; 
         updateNumb(opNumb);} 

def = function(){opNumb=0; 
       updateNumb(opNumb);} //function to return to default 

randomNumb = function(){opNumb = Math.floor(Math.random() * 11); 
         updateNumb(opNumb);} 

updateNumb = function(Numb){document.forms[0].opVal.value = Numb;} 
window.onkeydown = press;   //bind keydown to press function 

function press(e){ 
if (e.keyCode == 37) left(); 
if (e.keyCode == 39) right() 
    } 

HTML форма

<form id="frm1"> 
<input type="text" name="opVal" value="0"/><br /> 
<input type="button" value="left" onclick="left()"/><input type="button" value="right" onclick="right()"/><input type="button" value="Clear" onclick="def()"/><input type="button" value="Shuffle" onclick="randomNumb()"/><br /> 
<input type="button" value="Submit form" onclick="alert(opNumb);"/> 
</form>​ 

Что ваша форма выглядит? У вас, скорее всего, проблема с настройкой значения?

Link to example

0

Это звучит как ваш номер не сохраняется так всякий раз, когда вы обновляете номер на экране, я бы сохранить номер, то таким образом вы всегда должны посылать число, которое вы видите.

var number = 0; 
//All your events to call the different functions 

function moveLeft{ 
    //logic 
    reset(num); 
} 
function moveRight{ 
    //logic 
    reset(num); 
} 
function shuffle{ 
    //logic 
    reset(num); 
} 
function reset{ 
    //logic 
    reset(num); 
} 

reset(num){ 
    number = num; 
    //update the HTML 
} 
Смежные вопросы