将用户输入值插入函数

Inserting User Input Values into a Function

我正在尝试获取通过 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>

您可以再次检索输入值,方法是获取输入值并将其分配给同一个变量(但在单击按钮后调用的函数内)。

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() 函数,因为它也需要输入。

它不起作用,因为您的变量输入始终是“”。每次单击按钮时,您都必须为其分配新值。我刚刚将您的输入代码移动到 BooleanKeyword() 函数中。现在一切正常。

每当这样的事情不起作用时,只需尝试 log/alert 个值。

例如,您可以 alert(input + ' ' + 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>