0

jQuery 1.8.3を使用しているときにAjax応答が呼び出されませんsuccess:function()が、コードはjQuery1.4.2で完全に機能しています。

ここにコードがあります:

<script type="text/javascript">
$(document).ready(function(){
    $("#usn").on('keyup',function() {
        var dat=$("#usn").val();
        if($.trim(dat).length<10){
            $("#result").html("");
            $("#info").show();
        } else if($.trim(dat).length==10) {    
            txt=$("#usn").val();
            txt=txt.toUpperCase();
            var exp = /^[1-9][a-zA-Z][a-zA-Z][0-9][0-9][a-zA-Z][a-zA-Z][0-9][0-9][0-9]$/;
            if(exp.test(txt)){
                var resultType =$("input[name='resultType']:checked").val();
                $("#result").html("<img src=\"./result/loader.gif\"/><br/>Loading...");     
                $.ajax({
                    type: "GET",
                    url: "result/result_html.php?usn="+txt+"&resultType="+resultType,
                    dataType:"JSON",
                    success:function(result){
                        $("#info").hide();
                        $("#result").html(result);              
                        $("#usn").attr("placeholder", "USN"); 
                    }
                });
            } else {
                $("#result").html("Please enter a valid USN.");    
            }
        }
    });
});
</script>

コンソールにエラーは表示されません。コンソールでAjaxリクエストが正常に完了したことがわかります。スクリプトコンソールで予想されるAjax応答を確認できます。

何が問題なのでしょう?

4

2 に答える 2

4

$.ajax()呼び出しの中で、はdataTypeJSONです。コメントで、応答はHTMLであるとおっしゃいました。dataTypeを「html」に変更するだけで問題は解決します。

于 2013-03-02T19:05:52.957 に答える
0

送信応答としてhtml...データ型はhtml、あなたの場合はjson..修正する必要があります

 $.ajax({
            type: "GET",
            url: "result/result_html.php?usn="+txt+"&resultType="+resultType,
            dataType:"html",  //<-- here
            success:function(result){
                    $("#info").hide();
                    $("#result").html(result);              
                    $("#usn").attr("placeholder", "USN"); 
                }
        }).....
于 2013-03-02T19:03:00.763 に答える