我是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
的按钮。
但我想要的是一种查找html
处理程序中的success
是否包含任何数据的方法(html
可能没有任何内容在其中)。如果是这样,我需要禁用createButton
id,否则我不应该做任何事情。
如何处理?
答案 0 :(得分:3)
if ($(html).contents().length) // there is content in html
答案 1 :(得分: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');
}
})
答案 2 :(得分: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
}
})
问候。
答案 3 :(得分: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');
}