2

私はjQueryに非常に慣れていません。おそらくこれは間違っていますが、ここに私の問題があります。ユーザーが入力をボックスに入れて送信するページがあり、サーバー上で応答データが生成され、AJAX で返送されます。ただし、送信を押しても何も起こりません...関数が呼び出されていることはわかっているので、jQueryコードが間違っていると思います。

これが私のコードです。

<html>
<head>
<style type="text/css">
#hide {
    display:none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
    $("#submit").click(doAjax());
});
function doAjax() {
    $.ajax({
        type:"GET",
        data:"myquerystring",
        url:"dummy.php"
    }).done(function(data){
        $("#hide").css("display","inline");
        $("#result").html(data);
    });
}
</script>
</head>
<body>
<p>Enter your text:</p>
<!--Code for textboxes-->
<button id="submit">Submit</button>
<p id="hide">Result:<pre id="result"></pre></p>
</body>
</html>

今のところ、dummy.php は次のとおりです。

<?php
echo "hi";
?>

それは問題ではありません。誰でもこれで私を助けることができますか?

更新:Chromeは私に教えてくれます:

 Uncaught TypeError: Object #<XMLHttpRequest> has no method 'done'

doAjax() を実行しようとすると

4

3 に答える 3

2

これが私が通常行う方法です。私は省略形の関数よりもこの方法を好みます。

$("#submit").on('click', function(){
    $.ajax({
        type:"GET",
        data:"myquerystring",
        url:"dummy.php"
        success: function(data){
            $("#hide").css("display","inline");
            $("#result").html(data);
        }
    });
});
于 2012-04-28T05:10:07.427 に答える
1

それは私のテストに取り組んでいます。jqueryがバージョン1.5以降であることを確認してくださいhttp://api.jquery.com/deferred.done/

Jquery 1.5

于 2012-04-28T04:27:50.507 に答える
1

jQuery.done() は jQuery 1.5 で導入されました。

これは jQuery バージョン 1.0 以降で機能し、私の好みの方法です。

$.get("dummy.php", {key1: "myquerystring"}, function(data) {
    $("#hide").css("display","inline");
    $("#result").html(data);
});

{key1: "myquerystring"} をクエリ文字列のキーと値のペアのオブジェクトに置き換えます。.ajax()この方法でも機能します。私はあなたがひもを持っていることに気づきました。

.ajax()コールバック機能もありますが.get()、短くて便利です。

于 2012-04-28T04:32:47.717 に答える