2016-08-19 6 views
-1

In meinem Textfeld erlaubte ich nur Integer-Wert und Komma wird es mit Javascript steuern.Jetzt meinen Zweifel, wie man mehr als Komma kontinuierlich steuern (dh) 1,2,3,4 ist zu ok dann 1,2,3,, 4,, 5 seine Notwendigkeit beschränkt.Ich ist in Javascript möglich.Mehr als ein Komma mit JavaScript einschränken

<p:inputText onKeyPress="onlyAllowDigitComma(event);"/> 
+0

Können Sie nur den Funktionscode "AllowDigitComma" angeben? – Ruhul

+0

Wir verstehen, dass nicht jeder ein englischer Muttersprachler ist, aber das internationale Standard-Englisch verwendet keinen "Zweifel" in diesem Sinne, wir benutzen "Frage". Es setzt auch Leerzeichen nach Pausen und verwendet Apostrophe in Wörtern wie "es ist" (wenn eine Abkürzung von "es ist"). Die korrekte Großschreibung für die Sprache ist "JavaScript". –

Antwort

0

Verwenden Sie einen Regex, um Ihre Eingabe zu validieren. Wenn die erste Übereinstimmung die gleiche wie die gesamte Eingabe ist, dann ist es gut zu gehen.

Die Regex Sie suchen ist /(\d,?)*/g (Test Link)

Aus Gründen der Einfachheit halber habe ich den folgenden Code mit dem ‚keyup‘ Ereignisse Verknüpfungen Probleme zu vermeiden. Möglicherweise möchten Sie auch das Ereignis Kopieren/Einfügen überprüfen.

let myInput = document.getElementById('myInput'); 
let myInputValue = myInput.value; 

myInput.addEventListener('keyup', function(event){ 
    if(isPerfectMatch(myInput.value, /(\d,?)*/g)){ 
    console.log('Format is correct.'); 
    myInputValue = myInput.value; 
    } 
    else { 
    console.log('Wrong format'); 
    myInput.value = myInputValue; 
    } 
}); 

function isPerfectMatch(value, regex){ 
    let match = value.match(regex); 
    return match !== null && match[0] == value; 
} 

(Demo JSFiddle)

0

Ihre Antwort zeigt nicht, wie weit Sie mit Ihrer Lösung gehen. Ich nehme an, dass Code-Ballade das ist, was Sie wollten, und ich nehme an, dass Sie Comas von Anfang und Ende entfernen müssen.

<input type="text" onkeypress="onlyAllowDigitComma(event,this);" onkeyup="onlyAllowDigitComma(event,this);"/> 
<script> 
function onlyAllowDigitComma(e,l){ 
    var k = e.which; 
    if ((k <= 47 || k >= 58) && k!=44 && k!=8 && k!=0) { 
     e.preventDefault() 
    }; 
    l.value=l.value.replace(/,,/g,','); 
} 
</script> 
Verwandte Themen