私は入力要素の中に入力されたテキストをJSON要求に使用できるようにしようとしています。jsonリクエストに入力された入力をどのように取得するのですか?
$("document").ready(function() {
var search = $('#input').val()
var api =
"https://en.wikipedia.org/w/api.php?callback=?&action=opensearch&format=json&search=" +
search +
"&namespace=0&limit=10&profile=fuzzy&suggest=1";
// Button function
$(".btn").click(function() {
function listClear() {
$("ul").empty();
}
listClear();
$.getJSON(api, function(data) {
function listCreate() {
var arr = data[1];
for (i = 0; i < arr.length; i++) {
$("ul").append("<li>" + arr[i] + "</li>");
}
}
listCreate();
});
});
});
は、私の要素は、私はこのようにそれを行うと、コンソールは未定義の長さが見つからないというエラーを示し、この
<input type="search" id="input" class="form-control" placeholder=". . .">
のように見えます。私はこれが私の現在の価値の取得方法が機能していないことを意味します。何か案は?
ps。私もcodepen(https://codepen.io/WatchConnorCode/pen/JybGVJ?editors=1010)でこのコーディングをしていますそれは問題を引き起こすかどうかわかりません?
編集:私は前にvalでそれを戻して忘れました。まだ意図したとおりに動作していません。
あなたはその時点で誰もに何も入っていないいる、DOM準備であなたの入力値を取得しようとしていますまだ箱。あなたはボタンのクリックハンドラーでそれを行う必要があります。また、実際に応答を確認した場合、apiがエラーを返す、つまり 'data.error'をチェックして、適切な検索パラメータを指定しなかったことがわかったとします。 –
エラーコールバックはどうやって行いますか?私はまだ非常にコード化しています – WatchConnorCode
また、$( '#input').val()でなければなりません。 Not $( '#input')。テキストボックスの内容を読み込むためのtext()。 – gjijo