我在下面有四种不同类型的提交按钮:
<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;
};
});
});
答案 0 :(得分:2)
您在哪里将点击处理程序附加到代码中的按钮?
无论如何,jQuery的聪明之处在于已经为您制作了简单的处理程序。您只需将点击处理程序附加到这样的元素:
$(function() {
$('#submitBtn').click(function(){
//... Your code here
});
});
完整代码:
$(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()。 (您需要应用成功函数)。