jqueryオートコンプリートを使用してオートコンプリート候補を取得しています。ユーザーが正しい短縮名(オプション['value'])の名前を入力すると、送信ボタンを有効にします。 HTML入力(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',
});
});
<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を)を提出有効にします
コンソールに表示されるエラーは次のとおりです。ReferenceError:optionsが定義されていません。私はこれに新しいです、誰もこれを解決するためにお手伝いしてもらえますか?
注:がsearch.jsファイルがindex.phpを
感謝を使用して、異なるファイルからオプションにアクセスすることができます。このコードをindex.phpに追加しましたが、引き続きエラーが発生します:ReferenceError:optionsは定義されていません。私はここからsearch.jsで宣言されているoptions変数にはアクセスできないと思います。どうすればそれにアクセスできますか? – Soumyajit
@SoumyajitGorai別の '$(document).ready'関数の中でsearch.jsファイルの変数を変数に定義したと思います。この場合、別のファイルの '$(document).ready'コールバック関数内のオプションにアクセスすることはできません。スコープの問題を修正して私の答えを更新しました。 – sbr
ありがとう@sbr。私は今それにアクセスできますが、ボタンは正しい入力で有効になりません。現在のコードは次のようになります: '$( '#autocomplete'){ console.log( 'matched'){} ; $( '#成功')removeAttr( '無効');。。 }他{ $( '#成功')(、 '無効' 真)小道具; } }); ' ' isValidUserInput'関数はcharmのように機能しますが、ボタンはまだ無効のままです。 – Soumyajit