私はこのコードを持っています:
_<input type="hidden" id="editorTitle" name="title" value="home">
<textarea name="text" id="editorText"></textarea>
_
しかし、$('#editorTitle').val()
と$('#editorText').html()
を書くとき、$('#editorTitle').val()
は 'undefined'で、$('#editorText').html()
は空ですか?
なにが問題ですか?
編集:
完全なコードは次のとおりです。
_function openEditor() {
$("#editor").show().animate({ width: 965, height: 380 }, 1500);
$("#editor textarea").show();
}
function closeEditor() {
$("#editor").animate({ width: 985, height: 1 }, 1500, function () {
$("#editor").hide();
$("#editor textarea").hide();
});
}
function setedit() {
$.ajax({
type: "POST",
url: "engine.php",
data: "title=" + $('#editorTitle').attr('value') + "&text=" + $('#editorText').html(),
beforeSend: function () {
$('#mainField').html('<img src="data/images/loader.gif" alt="Loading...">');
},
success: function (msg) {
alert(msg);
closeEditor();
search();
}
});
}
function search() {
$('#title').val($('#search').val());
$.get('engine.php?search=' + $('#search').val(), function (data) {
$('#mainField').html(data);
});
$.get('engine.php?raw=true&search=' + $('#search').val(), function (data2) {
$('#editorText').html(data2);
});
$.get('engine.php?title=true&search=' + $('#search').val(), function (data2) {
$('#h1').html(data2); // Row 152
$('#editorTitle').html(data2);
});
}
$(document).ready(function () {
$("#ready").html('Document ready at ' + event.timeStamp);
});
_
しかし、何が問題なのですか?!?!
次のように、イベントを呼び出す必要がありますドキュメントの準備が完了した後
$(document).ready(function () {
// Your code
});
これは、ブラウザでレンダリングされる前に要素を操作しようとしているためです。
したがって、投稿した場合は次のようになります。
$(document).ready(function () {
var editorTitle = $('#editorTitle').val();
var editorText = $('#editorText').html();
});
それが役に立てば幸い。
ヒント:jQueryオブジェクトは常に後で使用するために変数に保存し、ドキュメントのロード後に実際に実行する必要があるコードのみをready()関数内に入れる必要があります。
これは愚かですが、将来の参考のために。すべてのコードを次の場所に配置しました。
$(document).ready(function () {
//your jQuery function
});
しかし、まだ動作していませんでしたし、undefined
値を返していました。 HTML DOMを確認します
<input id="username" placeholder="Username"></input>
そして、jQueryで間違って参照していることに気付きました:
var user_name = $('#user_name').val();
作ります:
var user_name = $('#username').val();
私の問題を解決しました。
そのため、以前のコードを常に確認することをお勧めします。
文書準備機能にロードするのを忘れた可能性がありますか?
$(document).ready(function () {
//your jQuery function
});
試してください:$('#editorTitle').attr('value')
?
昨日、私が取り組んでいたプロジェクトでこれに出くわしました。私は特定のケースです。入力の名前は正確ではありませんでしたが、how IDの名前が付けられました。
<input id="user_info[1][last_name]" ..... />
var last_name = $("#user_info[1][last_name]").val() // returned undefined
ブラケットを取り外すことで問題が解決しました:
<input id="user_info1_last_name" ..... />
var last_name = $("#user_info1_last_name").val() // returned "MyLastNameValue"
とにかく、おそらく一部の人にとっては簡単なことではありませんが、万が一これが他の人に役立つ場合は...そこに行きます!
:-)-ドリュー
$()
でオブジェクトをラップするのを忘れたかもしれません
var tableChild = children[i];
tableChild.val("my Value");// this is wrong
正しいものは
$(tableChild).val("my Value");// this is correct