将用户输入值插入函数

时间:2016-07-24 20:04:52

标签: javascript html variables user-input

我正在尝试获取通过html输入框输入的用户输入值,并将其作为我的函数中的值(我的代码中的negKeyword函数更具体)。我认为发生的问题是这个输入值存储为变量,因此当代码首次存储在内存中时,它存储为“”,因为用户尚未输入任何内容。如果用户输入的内容为空白或用户输入的内容,我该怎么做呢?

接下来我基本上想要发生的是用户点击一个按钮,然后它将比较用户输入的内容与“negKeyword”函数输出的内容,并给出是否匹配的结果(此操作在我的代码中的booleanKeyword函数。)

这是我的代码。

var input = document.getElementById("input").value;
var arr = ['no', 'not', 'checked']; 
var text = ''; //JS output variable.
var keyword = 'leak'; //Individual keyword.

function negKeyword() {
		
for (i = 0; i < arr.length; i++) {
	
	if (text == input) { break; }	
	text = arr[i] + ' ' + keyword;
	
	}
	return text;
}
	
function booleanKeyword() {	

	if (input == negKeyword()) { 
		
		document.getElementById("result").style.color="green";
		document.getElementById("result").innerHTML="Match";
	
	} else {
	
		document.getElementById("result").style.color="red";
		document.getElementById("result").innerHTML="No Match";
	
	}
	
}

document.getElementById("result2").innerHTML=keyword;
<label for="Full Negative Keyword">Negative Keyword</label> <input id="input" type="text" />

<div id="message">Result: <span id="result"></span></div>
<div id="message">Keyword: <span id="result2"></span></div>
        
        <button id="test" onclick="booleanKeyword()">Click to Test</button>

2 个答案:

答案 0 :(得分:0)

您可以通过获取输入值并分配给相同的变量(但在单击按钮后调用的函数内部)来再次检索输入值。

var input = document.getElementById("input").value;
var arr = ['no', 'not', 'checked']; 
var text = ''; //JS output variable.
var keyword = 'leak'; //Individual keyword.

function negKeyword() {

  input = document.getElementById("input").value;
		
  for (i = 0; i < arr.length; i++) {
	
	if (text == input) { break; }	
	text = arr[i] + ' ' + keyword;
	
	}
	return text;
}
	
function booleanKeyword() {	

        input = document.getElementById("input").value;//The variable is reassigned, only after the click

	if (input == negKeyword()) { 
		
		document.getElementById("result").style.color="green";
		document.getElementById("result").innerHTML="Match";
	
	} else {
	
		document.getElementById("result").style.color="red";
		document.getElementById("result").innerHTML="No Match";
	
	}
	
}

document.getElementById("result2").innerHTML=keyword;

编辑:将相同的代码添加到negKeyword()函数,因为它也需要输入。

答案 1 :(得分:0)

它无效,因为您的变量输入始终为“”。每次单击按钮时都必须为其分配新值。我刚刚在BooleanKeyword()函数中移动了代码以进行输入。现在一切正常。

每当这样的事情无效时,只需尝试记录/提醒值。

例如你可以提醒(输入+''+ negKeyword());在booleanKeyword()函数之上,你会发现问题。

var input;
var arr = ['no', 'not', 'checked']; 
var text = ''; //JS output variable.
var keyword = 'leak'; //Individual keyword.

function negKeyword() {
        
for (i = 0; i < arr.length; i++) {
    
    if (text == input) { break; }   
    text = arr[i] + ' ' + keyword;
    
    }
    return text;
}
    
function booleanKeyword() { 
    input = document.getElementById("input").value;
    if (input == negKeyword()) { 
        
        document.getElementById("result").style.color="green";
        document.getElementById("result").innerHTML="Match";
    
    } else {
    
        document.getElementById("result").style.color="red";
        document.getElementById("result").innerHTML="No Match";
    
    }
    
}

document.getElementById("result2").innerHTML=keyword;
<!DOCTYPE html>
<html>
<head>
    <title></title>
 </head>
<body>
<label for="Full Negative Keyword">Negative Keyword</label> <input id="input" type="text" />

<div id="message">Result: <span id="result"></span></div>
<div id="message">Keyword: <span id="result2"></span></div>
        
        <button id="test" onclick="booleanKeyword()">Click to Test</button>

</html>