不允许使用键的负值
Not allowing the negative values using keys
在我的应用程序中,我有一个带有一些文本的 ck 编辑器。文本被删除,用户使用 F1
、F2
、F3
和 F4
键选择此删除文本。
如果用户在使用 F4 键多次选择相同文本时选择了一些使用 F1 键被击中的文本,则出现次数变为负数。他们不应该变成负数,应该停在零。下面是连续按 f4 的屏幕截图。次要行共同保险变为负数,有时 PGS 行变为负数。他们不应该变成负数,应该停在零。我该怎么做?
下面是 F3 和 F4 键的 javascript 代码
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)
}
}
主要是当我在已经使用其他键选择的文本上重复使用 F4 键时出现
要在零处停止,您需要使用简单的 if 条件检查当前值,或者您可以使用逻辑运算符来减少代码行数。
(value && value - 1)
上面的代码returns 0
如果值是0
否则减去它的值。这是因为 0
是虚假值,进一步的执行没有完成,只是 returns。结果代码如下:
label.textContent = m[1] + (value && value - 1)
所以无论你在哪里递减值都做同样的事情。或者您可以使用三元运算符或简单的 if 条件来检查。例如:
if(value != 0) value--; // decrements value if not 0
label.textContent = m[1] + value; // update with the value
在我的应用程序中,我有一个带有一些文本的 ck 编辑器。文本被删除,用户使用 F1
、F2
、F3
和 F4
键选择此删除文本。
如果用户在使用 F4 键多次选择相同文本时选择了一些使用 F1 键被击中的文本,则出现次数变为负数。他们不应该变成负数,应该停在零。下面是连续按 f4 的屏幕截图。次要行共同保险变为负数,有时 PGS 行变为负数。他们不应该变成负数,应该停在零。我该怎么做?
下面是 F3 和 F4 键的 javascript 代码
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)
}
}
主要是当我在已经使用其他键选择的文本上重复使用 F4 键时出现
要在零处停止,您需要使用简单的 if 条件检查当前值,或者您可以使用逻辑运算符来减少代码行数。
(value && value - 1)
上面的代码returns 0
如果值是0
否则减去它的值。这是因为 0
是虚假值,进一步的执行没有完成,只是 returns。结果代码如下:
label.textContent = m[1] + (value && value - 1)
所以无论你在哪里递减值都做同样的事情。或者您可以使用三元运算符或简单的 if 条件来检查。例如:
if(value != 0) value--; // decrements value if not 0
label.textContent = m[1] + value; // update with the value