Может кто-нибудь, пожалуйста, помогите мне написать текстовое поле, которое будет информировать пользователя о его / ее попытках угадать игру. - PullRequest
0 голосов
/ 30 января 2012

Я застрял в последней части своего кода, в которой мне нужно создать текстовое поле, которое будет отображать количество попыток пользователей.Чего я не понимаю, так это как получить текстовое поле для отображения попыток.Я включил код.Спасибо

<HTML>
<HEAD>
</HEAD>
<BODY>

<FORM NAME="testform">
<BR>
<INPUT TYPE="button" NAME="button" VALUE="Click to Guess" onClick="testButton(this.form)">
<BR>
</FORM>

<SCRIPT type="text/javascript">

function testButton (form){

varguess = prompt("Guess a number betweent 1 and 20.","")
varattempts = 0


switch(true)

{

case varguess == 14:
    alert("You guessed right!")
    break;
case varguess>0 && varguess<=13:
    alert("Try again!")
    varattempts = varattempts + 1
    break;
case varguess>14 && varguess<=20:
    alert("Try again!")
    varattempts = varattempts + 1
    break;
default:
    alert("Please pick a number between 1 and 20.")


}

 }

</SCRIPT>
<INPUT TYPE="text" NAME="inputbox" VALUE="Attempts " + varattempts">
</BODY>
</HTML>

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Я не полностью переписал ваш код, но это желаемый эффект: jsFiddle

Я добавил идентификатор в поле ввода, чтобы захватить еготак проще HTML:

<FORM NAME="testform">
<BR>
<INPUT TYPE="button" NAME="button" VALUE="Click to Guess" onClick="testButton(this.form)">
<BR>
</FORM>
<INPUT id="attempts" TYPE="text" NAME="inputbox" VALUE="Attempts " />

BTW-теги обычно кодируются строчными буквами (например, <form> вместо <FORM>)

И JavaScript:

var varattempts = 0
function testButton(form) {

varguess = prompt("Guess a number betweent 1 and 20.", "")

switch (true)
    {
    case varguess == 14:
        alert("You guessed right!")
        break;
    case varguess > 0 && varguess <= 13:
        alert("Try again!")
        varattempts = varattempts + 1
        break;
    case varguess > 14 && varguess <= 20:
        alert("Try again!")
        varattempts = varattempts + 1
        break;
    default:
        alert("Please pick a number between 1 and 20.")    
    }
    document.getElementById('attempts').value = 'Attempts: '+varattempts;
}

Обратите внимание, что вам нужно переместить переменную varattempts за пределы вашей функции, в противном случае вы всегда инициализируете ее равной 1, когда вызываете ее.

0 голосов
/ 30 января 2012
case varguess>14 && varguess<=20:
    alert("Try again!")
    varattempts = varattempts + 1
    document.getElemensByName('inputbox')[0].value = 'Attempts ' +  varattempts;
    break;

Вы должны сделать это для всех случаев неудачных попыток.

ваш входной текст не имеет атрибута id, поэтому мы должны выбрать его по атрибуту name с помощью

document.getElementsByName('inputbox')

getElementsByName возвращает HTML-список (вроде массива), содержащий ВСЕ элементы с именем «inputbox». в этом случае у вас есть только один, но вы все равно получите список.

таким образом, вы должны получить доступ к вашему полю ввода, используя индекс 0, чтобы обратиться к первому элементу. если бы у вас был список массивов = ['a', 'b', 'c'], вы бы получили 'a', вызвав list [0].

затем вы просите изменить его значение с помощью .value = 'Attempts' + varattempts.

Я надеюсь, вы понимаете это сейчас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...