문제

최근 프로젝트에서는 HTML 양식의 입력 필드 중 하나로 16 진수 마스크 (0x0-0xff)가 필요합니다. 나는 정기적 인 입력을 사용하여 16 진수를 얻을 수 있다는 것을 알고 있으며 다른 양식 제출 유효성 검사와 함께 검증 할 수 있습니다.

그러나 내가 사용중인 다른 소수점 분야 중 일부는 ui.spinner.js (github) 사용자가 위/다운 버튼을 누르면 숫자 값을 전환 할 수 있습니다. 육각 값을 입력하는 것과 비슷한 제어를하는 것이 좋을 것입니다. 또는 적어도 간단한 입력 요소보다 약간 "풍부한"컨트롤.

그러한 플러그인이 존재하는지 아는 사람이 있습니까?

미리 감사드립니다.

업데이트

나는 내가 사용하고있는 스피너 컨트롤을 언급하지 않았다. 혼란에 대한 나의 사과.

도움이 되었습니까?

해결책 4

관습을 작성하여 이것을 해결하게되었습니다 format 그리고 parse 핸들러, Keypress 이벤트를 무시할뿐만 아니라 사용자가 16 진수를 입력 할 수 있도록 다음과 같습니다.

        // Functions for dealing with hex values in spinners
        var parseHex = function(val) {
                    var options = this;

                    if (options.group == '.')
                        val = val.replace('.', '');
                    if (options.point != '.')
                        val = val.replace(options.point, '.');
                    return parseFloat(parseInt(val, 16));
                },
            formatHex = function(num, places) {
                    var options = this,
                    regex = /(\d+)(\d{3})/,
                    result = ((isNaN(num) ? 0 : Math.abs(num)).toFixed(places)) + '';

                    for (result = result.replace('.', options.point); regex.test(result) && options.group; result=result.replace(regex, '$1'+options.group+'$2')) {};
                    return (num < 0 ? '-' : '') + options.prefix + parseInt(result).toString(16) + options.suffix;
                },
             keypressHex = function(e) {
                var ch = String.fromCharCode(e.charCode || e.keyCode)
                if (((ch >= '0') && (ch <= '9')) || ((ch >= 'a') && (ch <= 'f')))
                    return true;
                return false;
             };

        jQuery('#myinput')
            .spinner({
                min: 0,
                max: 255,
                prefix: '0x',
                format: formatHex,
                parse: parseHex});
        jQuery('#myinput').unbind('keypress.uispinner'); // Explicitly remove the controls keypress validation
        jQuery('#myinput').bind('keypress.uispinner', keypressHex);

다른 팁

나는 한 번도 본 적이 없다. 스피너가 육각형을 만드는 것은 너무 어렵지 않아야합니다. 0x00 -0xff의 선택 상자를 값으로 사용하거나 0-256에서 일반 스피너를 수행하고 Spin () 이벤트에서 Hex로 변환하십시오.

생각한다 아마도 jQuery UI 스피너를 사용하여이를 수행 할 수 있습니다. 나는 아무것도 테스트하지 않았지만 가능한 두 가지 옵션을 살펴볼 것입니다.

  1. Li의 0x00 -0xff 목록과 함께 JavaScript를 통해 UL 's를 만듭니다. 그런 다음 사용하십시오 $("#your_ul_id").spinner();

  2. 스핀 이벤트 핸들러를 사용하여 적절한 16 진로 변환하여 출력을 변경하십시오.

나는 최근에 같은 요구 사항을 가지고 있었고 다음 플러그인을 썼습니다. https://github.com/bubasti/jquery-hex-input

JQuery Widget Factory를 사용하고 있으며 JQuery 1.9 스피너 위젯을 사용하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top