0

ビューページの1つの領域に「hide」という名前のdivがあります...ajaxの応答に対して非表示にしたい...ここに私のコードがあります..最初にdivを非表示にしているので、$と書きます('#hide')。hide(); 準備完了関数の直後...それから、else部分にdivを表示しています..応答が'userNo'の場合、もう一度非表示にしたいのですが...divが再び非表示にならないことを除いてすべてが機能しています。なぜ問題なのかわからない

$(document).ready(function(){
     $('#hide').hide();
    $('#bill_no').blur(function(){

        if( $('#bill_no').val().length >= 3 )
            {
              var bill_no = $('#bill_no').val();
              getResult(bill_no); 
            }
        return false;
    })
    function getResult(billno){
        var baseurl = $('.hiddenUrl').val();
       $('.check').addClass('preloader');
        $.ajax({
            url : baseurl + 'returnFromCustomer_Controller/checkBillNo/' + billno,
            cache : false,
            dataType: 'json',
            success : function(response){
                 $('.check').removeClass('preloader');

                if (response == "userNo") 
                    $('#hide').hide();  // this is not working 
                else
                $('.check').removeClass('userNo').addClass('userOk');
                // $(".text").html(response.result);
                 $('#hide').show();
                 $(".text1").html(response.result1);
                 $(".text2").html(response.result2);
                 $(".text3").html(response.result3);

            }
        })
    }
})

4

1 に答える 1

1

ええと、div を非表示にしてから、「else」ステートメントの後のコードの 2 行目に再び表示します。したがって、コードが機能していないように見えます。コード フローは次のようになります。応答が「userNo」の場合は div を非表示にし、それ以外の場合は $('.check') のクラスを削除/追加します。いずれの場合も、div を表示し、3 つのテキスト div の html を置き換えます。show div ステートメントは if/else ケースの外にあるためです。

if/else ステートメントの後には常に {} を使用する必要があります。そうでない場合は、if/else の直後の最初のステートメントのみが実行されます。だからあなたはすべきです

if (response == 'userNo') {
  $('#hide').hide();
} else {
  $('.check').removeClass('userNo').addClass('userOk');
  $('#hide').show();
  $(".text1").html(response.result1);
  $(".text2").html(response.result2);
  $(".text3").html(response.result3);
}
于 2013-01-26T06:09:47.103 に答える