2016-06-06 8 views
0

In meiner Anwendung habe ich ck Editor mit ein wenig Text drin. Der Text ist strike of und dieser strike-off-Text wird vom Benutzer mit den Tasten F1, F2, F3 UND F4 ausgewählt.Die negativen Werte mit den Schlüsseln nicht zulassen

Wenn der Benutzer einen Text auswählt, der mit der F1-Taste beim mehrfachen Auswählen desselben Textes mit der Taste f4 markiert ist, wird das Vorkommen auf negativ gesetzt. Sie sollten nicht zum Negativen gehen und sollten bei Null aufhören. unten ist der Bildschirm bei Drücken von f4 kontinuierlich. kleine Reihenmitversicherungen werden negativ und manchmal wird die PGS-Reihe negativ. Sie sollten nicht negativ werden und sollten bei null aufhören. Wie kann ich das machen?

unten ist der Javascript-Code für Tasten F3 und F4

if (event.data.$.keyCode == 114) {        
          label = document.getElementById('ctl00_ContentPlaceHolder1_lblMinorOccurences'); 
          m = label.textContent.match(/^(.*?)(\d+)$/); 
          value = parseInt(m[2], 10); 
          value = isNaN(value) ? 0 : value; 
          if (start_element.$.innerHTML.search(/{.*}/) >= 0) { 
           var index = start_element.$.innerHTML.search(/{.*}/); 
           var str = null; 
           if (index != -1) { 
            str = start_element.$.innerHTML; 
            if (start_element.$.innerHTML.search("{0.5}") >= 0) { 
             label.textContent = m[1] + (value - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             return; 
            } 
            else if (start_element.$.innerHTML.search("{1.0}") >= 0) { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblMajorOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#ffff66'); start_element.appendText("{0.5}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            } 
            else if (start_element.$.innerHTML.search("{3.0}") >= 0) { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblCriticalOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#ffff66'); start_element.appendText("{0.5}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            } 
            else (start_element.$.innerHTML.search("{0.25}") >= 0) 
            { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblPGSOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#ffff66'); start_element.appendText("{0.5}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            }  
           } 
          } 
          else { 
           start_element.setStyle('background-color', '#ffff66'); start_element.appendText("{0.5}"); 
           label.textContent = m[1] + (value + 1) 
          } 
         } 
         if (event.data.$.keyCode == 115) { 
          label = document.getElementById('ctl00_ContentPlaceHolder1_lblPGSOccurences'); 
          m = label.textContent.match(/^(.*?)(\d+)$/); 
          value = parseInt(m[2], 10); 
          value = isNaN(value) ? 0 : value; 
          if (start_element.$.innerHTML.search(/{.*}/) >= 0) { 
           var index = start_element.$.innerHTML.search(/{.*}/); 
           var str = null; 
           if (index != -1) { 
            str = start_element.$.innerHTML; 
            if (start_element.$.innerHTML.search("{0.5}") >= 0) { 
             label.textContent = m[1] + (value - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             return; 
            } 
            else if (start_element.$.innerHTML.search("{1.0}") >= 0) { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblMajorOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#0bff01'); start_element.appendText("{0.25}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            } 
            else if (start_element.$.innerHTML.search("{3.0}") >= 0) { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblCriticalOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#0bff01'); start_element.appendText("{0.25}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            } 
            else (start_element.$.innerHTML.search("{0.5}") >= 0) 
            { 
             lblOther = document.getElementById('ctl00_ContentPlaceHolder1_lblMinorOccurences'); 
             mOther = lblOther.textContent.match(/^(.*?)(\d+)$/); 
             valOther = parseInt(mOther[2], 10); 
             valOther = isNaN(valOther) ? 0 : valOther; 
             lblOther.textContent = mOther[1] + (valOther - 1); 
             var txt = str.replace(/{.*}/, ""); 
             start_element.$.innerHTML = txt; 
             start_element.setStyle('background-color', '#ffffff'); 
             start_element.setStyle('background-color', '#0bff01'); start_element.appendText("{0.25}"); 
             label.textContent = m[1] + (value + 1) 
             return; 
            } 
           } 
          } 
          else { 
           start_element.setStyle('background-color', '#0bff01'); start_element.appendText("{0.25}"); 
           label.textContent = m[1] + (value + 1) 
          } 
         } 

vor allem kommt es, wenn ich immer wieder F4-Taste auf dem Text verwenden, die bereits andere ausgewählt wird mit der Taste

Antwort

0

bei null Sie müssen aufhören Überprüfen Sie den aktuellen Wert mit einer einfachen if-Bedingung oder verwenden Sie den logischen Operator, um die Anzahl der Zeilen im Code zu reduzieren.

(value && value - 1) 

Der obige Code gibt 0, wenn der Wert 0 sonst erniedrigten Wert davon ist. Es ist, weil 0 ist falscher Wert und weitere Ausführung ist nicht getan und nur es zurückgibt. Der resultierende Code wäre wie:

label.textContent = m[1] + (value && value - 1) 

Egal, wo Sie Verringerungen sind der Wert das gleiche tun. Oder Sie können Ternäroperator oder einfache wenn Bedingungen zu überprüfen. Zum Beispiel:

if(value != 0) value--; // decrements value if not 0 
label.textContent = m[1] + value; // update with the value