【发布时间】:2021-07-25 09:50:45
【问题描述】:
我正在尝试验证输入的游戏标题是否存在于数组中,来自 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>
它从来没有进入条件,我做错了什么?
提前致谢。
【问题讨论】:
-
你不应该在那里打电话给
$.each。你应该只传递数组。each用于为每个数组元素调用回调。 -
@trincot 如果我这样做,每次我按键时都会显示警报
-
首先
data.game_titles是一个json字符串,你需要解析它..JSON.parse(data.game_titles),现在你有一个数组来比较 -
即使这个比较必须在后端并且返回真或假给你的前端
-
@PsyLogic 你好,我已经按照指示完成了,但是它返回一个错误:backend-games:128 Uncaught ReferenceError: gameTitleValidation is not defined at HTMLInputElement.onkeyup (backend-games:128),你的关于后端验证的建议是通过帖子发送输入数据并在那里验证它的真假?
标签: javascript html arrays ajax laravel