Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Вот быстрое решение:

import javax.swing.JOptionPane;

public class Grades
{
    public String scoreToGrade( int score )
    {
        String grade;
        if( score < 50 ) return "F";
        else if( score >= 50 && score < 60) return "E";
        else if( score >= 60 && score < 70) return "D";
        else if( score >= 70 && score < 80) return "C";
        else if( score >= 80 && score < 90) return "B";
        else if( score > 90) return "A";
        else
        {
            grade = "Error: score " + score;
        }
        return grade;
    }

    public static void main( String[] args )
    {
        String input = JOptionPane.showInputDialog( "Score: " );
        int score = Integer.parseInt( input );
        Grades t = new Grades();
        String grade = t.scoreToGrade( score );
        JOptionPane.showMessageDialog( null,
                "For " + score + " points, your grade is:  " + grade );
    }
}
20
задан Paul Dixon 21 October 2008 в 20:10
поделиться

5 ответов

Можно ли отправить код? Я не нахожу проблемы с этим. Протестированный на Firefox 3.01/сафари 3.1.2 с:

function showMe(e) {
// i am spammy!
  alert(e.value);
}
....
<input type="text" id="foo" value="bar" onkeyup="showMe(this)" />
28
ответ дан 29 November 2019 в 23:33
поделиться

Существует два вида входного значения: свойство поля и атрибут html поля .

при использовании keyup события и field.value Вы, shuld получают текущее значение поля. Это не имеет место при использовании field.getAttribute ('значение'), которое возвратило бы то, что находится в атрибуте HTML (значение = ""). Свойство представляет то, что было введено в поле и изменения, как Вы вводите, в то время как атрибут не изменяется автоматически (можно изменить его с помощью field.setAttribute метод).

7
ответ дан 29 November 2019 в 23:33
поделиться
<html>
    <head>
        <script>
        function callme(field) {
            alert("field:" + field.value);
        }
        </script>
    </head>
    <body>
        <form name="f1">
            <input type="text" onkeyup="callme(this);" name="text1">
        </form>
    </body>
</html>

похоже, что можно использовать onkeyup для получения новыми значение управления вводом HTML. Надежда это помогает.

3
ответ дан 29 November 2019 в 23:33
поделиться

Можно попробовать этот код (требует jQuery):

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#foo').keyup(function(e) {
                var v = $('#foo').val();
                $('#debug').val(v);
            })
        });
    </script>
</head>
<body>
    <form>
        <input type="text" id="foo" value="bar"><br>
        <textarea id="debug"></textarea>
    </form>
</body>
</html>
1
ответ дан 29 November 2019 в 23:33
поделиться

Здесь таблица различных событий и уровни поддержки браузера. Необходимо выбрать событие, которое поддерживается по крайней мере через все современные браузеры.

, Как Вы будете видеть от таблицы, keypress и change, событие не имеет универсальной поддержки, тогда как keyup событие делает.

Также удостоверяются, что Вы присоединяете обработчик событий с помощью cross-browser-compatible метода...

0
ответ дан 29 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: