我正在使用jquery自动填充并获取自动填充建议。如果用户在输入中输入正确的短名称(即options ['value'])名称,我想启用提交按钮。 HTML输入(的index.php):如果用户输入正确的字符串,请启用提交按钮
<input class="form-control typeahead" id="autocomplete" name="autocomplete" placeholder="COMPANY NAME" type="text" />
<div id="res"></div>
<button type="button" class="form-control btn btn-success" id="success" disabled>SUBMIT</button>
和逻辑来启用提交按钮(的index.php):
$("#res").click(function(){
$("#success").prop("disabled", false);
});
$("#autocomplete").keyup(function(){
if (!($('.autocomplete-suggestions').is(':visible')) && $('#autocomplete').val() != '' && options.hasOwnProperty($(this).val())) {
$("#success").prop("disabled", false);
}else {
$("#success").prop("disabled", true);
}
});
JQuery的自动完成功能(search.js):
var options;
$(function(){
options = [{ value: "WIPRO", data: "Wipro ltd" },{ value: "TCS", data: "Tata consultancy serv lt" },{ value: "INFY", data: "Infosys limited" }];
$('#autocomplete').autocomplete({
lookup: options,
appendTo: '#res',
});
});
我在控制台中得到的错误是:ReferenceError:选项未定义。我是新来的,任何人都可以帮忙解决这个问题吗?
注:的search.js文件包含在的index.php
感谢您的回答不同的文件访问选项。我在index.php中添加了这段代码,但仍然收到错误:ReferenceError:options没有定义。我想我无法从这里访问options变量(在search.js中声明)。你能告诉我如何访问它? – Soumyajit
@SoumyajitGorai我猜你已经在另一个'$(document).ready'函数内的search.js文件中定义了options变量。在这种情况下,您不能在另一个文件中访问'$(document).ready'回调函数中的选项。用范围问题修正更新了我的答案。 – sbr
谢谢@sbr。我现在可以访问它,但按钮没有启用正确的输入。我现在的代码如下所示: '$('#autocomplete')。keyup(function(){ if(isValidUserInput($('#autocomplete').val())){ console.log('matched') ; $( '#成功')removeAttr( '禁用'); }其他{ $( '#成功')丙( '禁用',真正的); } });' ' isValidUserInput'功能像魅力一样,但按钮仍然保持禁用状态。 – Soumyajit