如何比较两个函数中定义的两个javascript变量值
我有两个javascript函数,如下所示,其中wll计算textareas中的非空行 HTML:如何比较两个函数中定义的两个javascript变量值,javascript,jquery,html,Javascript,Jquery,Html,我有两个javascript函数,如下所示,其中wll计算textareas中的非空行 HTML: 输入设备列表(一行一个设备) 以十六进制输入LUN ID(一行一个ID) Javascript: function devscount() { devcounts = 0; var lines = $("#devs").val().split("\n"); for (var i = 0; i < lines.length; i++) { if (l
输入设备列表(一行一个设备)
以十六进制输入LUN ID(一行一个ID)
Javascript:
function devscount()
{
devcounts = 0;
var lines = $("#devs").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) devcounts++;
}
}
function luncount()
{
luncounts = 0;
var lines = $("#lunids").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) luncounts++;
}
if(devcounts == luncounts) {
var message ="both counts are matching";
} else {
var message ="Mismatch between values";
document.getElementById('error1').innerHTML=message;
}
}
函数devscont()
{
devcounts=0;
变量行=$(“#devs”).val().split(“\n”);
对于(变量i=0;i0)devcounts++;
}
}
函数luncount()
{
luncounts=0;
变量行=$(“#lunids”).val().split(“\n”);
对于(变量i=0;i0)为++;
}
如果(devcounts==luncounts){
var message=“两个计数都匹配”;
}否则{
var message=“值之间不匹配”;
document.getElementById('error1')。innerHTML=message;
}
}
现在我想比较这两个文本区域的行数,如果它们相等和不相等,我需要显示一条消息。但是上面的脚本不适合我。当我回显document.getElementById('error1').innerHTML=devscont和document.getElementById('error1')。innerHTML=luncounts代码>在其相应的函数上,它完美地显示了行数。但我无法比较它们的价值。怎么做
JSFIDLE的问题不仅仅是这个问题。您尝试检查值的方式也存在问题。这两个文本区域在keyup上运行函数来计算其中的项目,但没有运行比较代码。我将它们都更改为运行第三个函数,checkcounts
,并将脚本修改为
var devcounts;
var luncounts;
function devscount() {
devcounts = 0;
var lines = $("#devs").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) devcounts++;
}
}
function luncount() {
luncounts = 0;
var lines = $("#lunids").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) luncounts++;
}
}
function checkcounts() {
devscount();
luncount();
var message;
if(devcounts == luncounts) {
message ="both counts are matching";
} else {
message ="Mismatch between values";
}
document.getElementById('error1').innerHTML=message;
}
var devcounts;
变异数;
函数devscount(){
devcounts=0;
变量行=$(“#devs”).val().split(“\n”);
对于(变量i=0;i0)devcounts++;
}
}
函数luncount(){
luncounts=0;
变量行=$(“#lunids”).val().split(“\n”);
对于(变量i=0;i0)为++;
}
}
函数checkcounts(){
devscont();
luncount();
var消息;
如果(devcounts==luncounts){
message=“两个计数都匹配”;
}否则{
message=“值之间不匹配”;
}
document.getElementById('error1')。innerHTML=message;
}
JSFIDLE的问题不仅仅是这个问题。您尝试检查值的方式也存在问题。这两个文本区域在keyup上运行函数来计算其中的项目,但没有运行比较代码。我将它们都更改为运行第三个函数,checkcounts
,并将脚本修改为
var devcounts;
var luncounts;
function devscount() {
devcounts = 0;
var lines = $("#devs").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) devcounts++;
}
}
function luncount() {
luncounts = 0;
var lines = $("#lunids").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if (lines[i].length > 0) luncounts++;
}
}
function checkcounts() {
devscount();
luncount();
var message;
if(devcounts == luncounts) {
message ="both counts are matching";
} else {
message ="Mismatch between values";
}
document.getElementById('error1').innerHTML=message;
}
var devcounts;
变异数;
函数devscount(){
devcounts=0;
变量行=$(“#devs”).val().split(“\n”);
对于(变量i=0;i0)devcounts++;
}
}
函数luncount(){
luncounts=0;
变量行=$(“#lunids”).val().split(“\n”);
对于(变量i=0;i0)为++;
}
}
函数checkcounts(){
devscont();
luncount();
var消息;
如果(devcounts==luncounts){
message=“两个计数都匹配”;
}否则{
message=“值之间不匹配”;
}
document.getElementById('error1')。innerHTML=message;
}
让我吃惊的是,您编写了大量代码来完成一些非常简单的任务。我已在中替换了您的代码。单一功能
function testCounts()
{
var devCounts = $('#devs').val().split('\n').length;
var lunCounts = $('#lunids').val().split('\n').length;
var equals = (devCounts == lunCounts)?'Equal':'Not Equal';
$('#error1').text(equals);
}
还是我完全弄错了。我觉得你写了很多代码来做一些非常简单的事情。我已在中替换了您的代码。单一功能
function testCounts()
{
var devCounts = $('#devs').val().split('\n').length;
var lunCounts = $('#lunids').val().split('\n').length;
var equals = (devCounts == lunCounts)?'Equal':'Not Equal';
$('#error1').text(equals);
}
或者我完全弄错了。因为变量包含在函数中,所以它们彼此看不到,如果在2个函数之外声明它们,您可以比较它们,因为它们将位于相同的范围if(devcounts()==luncounts())
将变量设置为全局变量,并在函数中设置其值。由于变量包含在函数中,因此它们不会相互看到,如果在两个函数之外声明它们,则可以对它们进行比较,因为它们将在相同的范围内if(devcounts()==luncounts())
将变量设置为全局变量,并在函数中设置它们的值。如果我在第一个代码中输入值,它将显示相等的事件,而第二个文本区域为空。这是一个完全无关的问题。您需要去掉从文本区域内容创建的数组中的空字符串。看看我是否在第一个代码中输入值,它显示相等的事件,而第二个文本区域为空。这是一个完全无关的问题。您需要去掉从文本区域内容创建的数组中的空字符串。看,我已经尝试了第一种方法。但它并没有显示信息。请看这里:我已经修复了JSFIDLE中的内容。除了你这里的问题,还有一些其他问题,比如没有实际比较textarea keyup上的计数。这是一个工作版本。。。谢谢,成功了。我是否可以在两个框中输入数据之前隐藏消息?这里,只要我在第一列中输入值,就会显示错误消息,只需从第一个文本区域中删除onkeyup
处理程序。您也可以对第二个文本区域使用onchange
或onblur
,因此它只在您离开时进行检查。我尝试了第一种方法。但它并没有显示信息。请看这里:我已经修复了JSFIDLE中的内容。除了你这里的问题,还有一些其他问题,比如没有实际比较textarea keyup上的计数。这是一个工作版本。。。谢谢,成功了。有没有我可以隐藏的消息