JQuery if语句?

问题描述:

Jquery的新功能,并想知道如何将下面的JQuery代码放在if语句中,以便它只在点击提交按钮时运行,并且在没有点击时什么也不做我知道我正在使用$(".save-button").click(function()有没有办法把它放在一个if语句中?JQuery if语句?

JQuery代码。

$(function() { 
    $(".save-button").click(function() { 
     $.post($("#contact-form").attr("action"), $("#contact-form").serialize(), function(html) { 
      $("div.contact-info-form").html(html); 
      $('#changes-saved').append('<li>Changes saved!</li>').show().pause(1000).hide(); 
     }); 
     return false; // prevent normal submit 
    }); 
}); 
+2

这不是很清楚......你需要什么条件?当你不点击它时,'click'什么也不做。 – Kobi 2010-03-23 05:55:29

调用。点击和传递功能说“调用此功能,当元素被点击”

。点击()没有一个函数参数调用click事件

因此,不存在需要'如果'

$(".save-button").click(function() { 
    $.post($("#contact-form").attr("action"), $("#contact-form").serialize(), function(html) { 
     $("div.contact-info-form").html(html); 
     $('#changes-saved').append('<li>Changes saved!</li>').show().pause(1000).hide(); 
    }); 
    return false; // prevent normal submit 
}); 

这会将click事件绑定到任何具有.save-button类的元素。

您可以将它只能提交按钮:

$(".save-button:submit") 

好了,你可以检查type属性点击的元素例如:

//... 
if ($(this).attr('type') == 'submit') 
//... 

但我会建议你使用submit事件,请记住,如果用户按Enter键,表单也可以提交:

$(function() { 
    $("#contact-form").submit(function() { 
     var $form = $(this); 
     $.post($form.attr("action"), $form.serialize(), function(html) { 
      $("div.contact-info-form").html(html); 
      $('#changes-saved').append('<li>Changes saved!</li>').show() 
           .pause(1000).hide(); 
     }); 
     return false; // prevent normal submit 
    }); 
});