javascript - 这个indexOf查询不起作用有什么原因吗?

标签 javascript html

我有一个 REST API 调用,它从 SharePoint 列表返回一组数据,我已将其部署到一系列文本区域。由此,我想选取这些文本区域之一并测试看看某个关键字是否出现在给定的文本中。如果这返回为 True,或出现在文本中,那么我希望将复选框更改为已选中。这一切都是在 MS Edge 中完成的,并将在 Edge 或 IE11 中运行。目前,这一切都没有发生,但我的调试器中没有收到任何错误,并且 REST API 结果正常拉取。

<textarea id="impactedAreas" style="width: 500px; height: 60px"></textarea>
<input type="checkbox" id="custImpacted">
<input type="button" id="button" onclick="updateImpact" value="click me">
function updateImpact(){
var impactAreas = document.getElementById("impactedAreas");
var impact = String(impactAreas);

if (impact.indexOf("Customer") >= 0 ){
document.getElementById("custImpacted").checked = true;
}

文本区域impactedAreas填充了以下部分或全部关键字的返回,格式如下:顾问、IT、设备、设施、客户、移动网络、家庭网络、天气

最佳答案

你错过了两件事:

  1. 在 HTML 中,需要在方法名称后添加 ():onclick="updateImpact()"
  2. 在 JS 中,您需要从 HTMLTextAreaElement 中获取 .value,该值是由 .getElementById() 返回的。

function updateImpact(){
  var impactAreas = document.getElementById("impactedAreas");
  var impact = String(impactAreas.value); // <- here, `.value`

  if (impact.indexOf("Customer") >= 0 ){
    document.getElementById("custImpacted").checked = true;
  }
}
<textarea id="impactedAreas" style="width: 500px; height: 60px"></textarea>
<input type="checkbox" id="custImpacted">
<!-- You was missing `()` after `updateImpact` -->
<input type="button" id="button" onclick="updateImpact()" value="click me">

关于javascript - 这个indexOf查询不起作用有什么原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709999/

相关文章:

javascript - Nodejs 未部署在 heroku 上 - node-pre-gyp install --fallback-to-build

javascript - 在node/javascript/underscore中过滤大型数据集

javascript - jQuery 将类添加到菜单项?

javascript - 为我的导航栏下拉菜单启用滚动条

html - 拉伸(stretch)背景图像设置为 hr 标签

javascript - 检查 PHP/jQuery 中哪些表单字段已更新

javascript - 几个javascript调用合二为一

javascript - Jquery/JavaScript - 获取事件 URL,拆分

JavaScript 选择 HTMLInputElement 在我没想到的时候起作用了

javascript - 返回 JSON 中的下标