首页 > 解决方案 > 如何检查字符串是否等于 Javascript 中的数组条目?

问题描述

我正在尝试验证输入的游戏标题是否存在于数组中,来自 ajax 的响应将所有游戏标题都带入了数据库。

因此,如果用户键入存在的游戏,则应显示一条消息。

这是我尝试过的:

<script type='text/javascript'>
function gameTitleValidation(str) {
    $.ajax({
        type: 'GET',
        url: '/getAjaxData',
        success: function (data) {
            if ($.inArray(str, $.each(data.game_titles))){
                alert("Game exists");
            }
        }
    });
}

和 HTML:

<div class="form-group form-group-game">
   <label>Game title:</label><br>
   <input type="text" name="game_title" onkeyup="gameTitleValidation(this.value)"required>
</div>

它永远不会进入条件,我做错了什么?

提前致谢。

标签: javascripthtmlarraysajaxlaravel

解决方案


看起来你在这里几乎没有选择。

  1. 如果你知道后端返回的是一个数组:
  • data.game_titles.some(title => title === str)
  • $.inArray(str, data.game_titles) >= 0因为第二个参数$.inArray应该是数组本身
  1. 如果 backed 返回的是一个字符串(例如逗号分隔值):
  • data.game_titles.indexOf(str) >= 0

推荐阅读