用户点击任一个具有相同名称的按钮=“响应”不同的值“确认”和“忽略”时发布的用户数据。我的问题是,当我使用jquery时,按钮的值不会发布,如下面的代码所示。有办法解决这个问题吗?
$("[name='respond']").live('click', function() {
$.ajax({
type: "POST",
data: $(this).closest('#REQUESTFORM').serialize(),
url: "content/requests/index.cs.asp?Process=RespondRequests",
success: function(output) {
alert(output);
//$(this).closest('#REQUESTFORM').html(output);
},
error: function(xhr){
alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}
});
});
<div class="tools">
<form method="post" action="content/requests/index.cs.asp?Process=RespondRequests" id="REQUESTFORM">
<input type="hidden" name="REQUESTID" value="<%=objRequests("REQUESTID")%>">
<input type="hidden" name="BYID" value="<%=objRequests("BYID")%>">
<input type="hidden" name="TOID" value="<%=objRequests("TOID")%>">
<input type="button" name="respond" value="Confirm" class="btn_confirm" />
<input type="button" name="respond" value="Ignore" class="btn_ignore" />
</form>
答案 0 :(得分:0)
这样做
data: 'respond='+$(this).attr('value')+$('#REQUESTFORM').serialize(),
答案 1 :(得分:0)
我的猜测是因为这些是(A)“按钮”输入而不是“提交”输入,和/或因为(B)你的onclick功能(特别是可能与live()结合)正在捕捉帖子而不是允许“名称”被视为表单数据的一部分。
一个想法是,你可以添加一些代码,以确保它确实成为表单数据的一部分。考虑在HTML中添加一个隐藏的输入:
<input type="hidden" name="TheActualRespondField" value="" />
然后,在你的“点击”功能javascript中,
$("[name='respond']").live('click', function() {
// register the correct button-click-value:
$('[name="TheActualRespondField"]').val($(this).val());
// now do your ajax form post:
$.ajax({
type: "POST" // etc...
});
}
祝你好运!答案 2 :(得分:0)
在表单中放置一个隐藏字段id="action"
,并在单击其中一个按钮时设置其值。所以JS将是:
$("[name='respond']").live('click', function() {
$('#REQUESTFORM #action').val($(this).val());
$.ajax({
type: "POST",
data: $(this).closest('#REQUESTFORM').serialize(),
url: "content/requests/index.cs.asp?Process=RespondRequests",
success: function(output) {
alert(output);
//$(this).closest('#REQUESTFORM').html(output);
},
error: function(xhr){
alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}
});
});
HTML:
<form method="post" action="content/requests/index.cs.asp?Process=RespondRequests" id="REQUESTFORM">
<input type="hidden" name="REQUESTID" value="<%=objRequests("REQUESTID")%>">
<input type="hidden" name="BYID" value="<%=objRequests("BYID")%>">
<input type="hidden" name="TOID" value="<%=objRequests("TOID")%>">
<input type="button" name="respond" value="Confirm" class="btn_confirm" />
<input type="button" name="respond" value="Ignore" class="btn_ignore" />
<input type="hidden" id="action" value="" />
</form>