如何只获得1个提交按钮来触发Jquery中的函数?

时间:2012-12-29 01:25:37

标签: jquery

我在下面有四种不同类型的提交按钮:

<form id="QandA" action="register.php" method="post">

<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' />

<input type='submit' name='submitVideoBtn' class='sbtnvideo' value='Upload' />

<input type='submit' name='submitAudioBtn' class='sbtnaudio' value='Upload' />

<input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" />

</form>

现在我有一个函数,可以处理单击提交按钮后发生的事情:

    $(function() {
    myClickHandler=function(e)
        {
            if (!validation())
                return false;

            if (!confirm("Are you sure you want to Proceed?" + "\n" ))
                return false;

            $.ajax({
                url: "insertQuestion.php",
                data: $("#QandA").serialize(),
                async: false,
                type: "POST"
            });

            return true;
        };

$('#QandA').submit(myClickHandler);


    });

现在,所有上述提交按钮都会触发上述事件。我只想要id="submitBtn"提交按钮来触发上述功能。我不希望其他提交按钮触摸此功能。我的问题是我该怎么做?

更新

$(function() {
$('#submitBtn').click(function(){
myClickHandler=function(e)
    {
        if (!validation())
            return false;

        if (!confirm("Are you sure you want to Proceed?" + "\n" ))
            return false;

        $.ajax({
            url: "insertQuestion.php",
            data: $("#QandA").serialize(),
            async: false,
            type: "POST"
        });

        return true;
    };
});    
});

1 个答案:

答案 0 :(得分:2)

您在哪里将点击处理程序附加到代码中的按钮?

无论如何,jQuery的聪明之处在于已经为您制作了简单的处理程序。您只需将点击处理程序附加到这样的元素:

$(function() {
  $('#submitBtn').click(function(){
      //... Your code here
  });
});

jQuery click()

完整代码:

$(function() {
  $('#submitBtn').click(function(){
    if (!validation())
      return false;

    if (!confirm("Are you sure you want to Proceed?" + "\n" ))
      return false;

    $.ajax({
        url: "insertQuestion.php",
        data: $("#QandA").serialize(),
        async: false,
        type: "POST"
    });
    return true;
  });
});

请注意,ajax调用将异步执行,因此在返回ajax调用之前可能会调用return true。见ajax()。 (您需要应用成功函数)。