2012-04-23 52 views
2

我是Jquery的新手。我有這樣的代碼:如何根據成功處理程序中的返回值隱藏按鈕?

$.ajax({ 
    url: "${createLink(controller :" 
    tasks ", action :" 
    holidayStatus ")}", 

    data: "userName=" + $("#user").find('option:selected').text() + "&date1=" + $("#datePicker").val() + "&date2=" + $("#datePicker2").val(), 
    cache: false, 
    success: function(html) { 
     $(".errors").append(html); 
     $(".errors").delay(1000).fadeIn('slow'); 
     $("#createButton").delay(1000).fadeOut('slow'); 
    })​ 

這個按預期工作。在我的success處理程序中,我將html(我從服務器端獲得)附加到.errors類。與此同時,我隱藏了編號爲createButton的按鈕。

但我要的是找出處理程序是否htmlsuccess包含的所有數據(也有機會,html沒有在任何內容)的方式。如果是這樣,我需要禁用createButton身份證,如果不是我不應該做任何事情。

如何繼續?

+0

'if(html!=='')'? – binarious 2012-04-23 12:07:34

+0

@binarious。他標記了**內容**字... _「(有可能html沒有任何**內容**)」@ – gdoron 2012-04-23 12:08:19

+0

@gdoron當沒有內容時,字符串應該是空的,不應該嗎? – binarious 2012-04-23 12:11:01

回答

3
if ($(html).contents().length) // there is content in html 

Live DEMO

+0

乾淨而富有表現力! +1感謝您的現場演示 – 2012-04-23 12:24:50

1

假設html是你可以簡單地檢查一個html.legth > 0的字符串。

success: function(html) { 
    if (html.length > 0) { 
     $(".errors").append(html); 
     $(".errors").delay(1000).fadeIn('slow'); 
     $("#createButton").delay(1000).fadeOut('slow'); 
    } 
}) 
+0

這不是他希望的可能是空的containersets – worenga 2012-04-23 12:11:00

0

你可以寫:

$.ajax({ 
    url: "${createLink(controller :"tasks", action :"holidayStatus")}", 
    data: "userName=" + $("#user").find('option:selected').text() + "&date1=" 
        + $("#datePicker").val() + "&date2=" 
        + $("#datePicker2").val(), 
    cache: false, 
    success: function(html) { 
      if(html) 
      { 
       $(".errors").append(html); 
       $(".errors").delay(1000).fadeIn('slow'); 
       $("#createButton").delay(1000).fadeOut('slow'); 
       $("#createButton").removeAttr('disabled'); //remove disabled 
      }else{ 
       $("#createButton").attr('disabled','disabled'); //disable button     
      }      
}) 

問候。

0

dataTypeString 默認:智能猜測(XML,JSON,腳本或HTML) 的類型,你期望從服務器返回的數據。如果沒有指定,jQuery將嘗試根據響應的MIME類型推斷它。

「html」:將HTML作爲純文本返回;包含的腳本標記在插入到DOM中時被評估。

//"html" is a string, so simple take it length 
if(html.length > 0) { 
    $(".errors").append(html); 
    $(".errors").delay(1000).fadeIn('slow'); 
    $("#createButton").delay(1000).fadeOut('slow'); 
} 
相關問題